using filter and hook inside class

No, constructors should not define hooks.

Constructors should be used to set the initial state of the object. Hooks have nothing to do with the object’s initial state, so they don’t belong in the constructor. Constructors should not have “side effects”, so that using new ClassName() does not affect any other parts of the program, which is what registering hooks does.

A good overview of this issue is this article by Tom McFarlin. It also offers an alternative.