Discover abstraction

Discover_Abstraction_1.PNG

If your classes are designed this way, you are doing it wrong.

You are not reusing the interface.

The interface is not specific.

These are all manufactured interfaces added just for the purpose of adding interfaces.

There is no abstraction.

Start with a concrete class look for commonalities and discover abstraction , Don't manufacture it Make it look like this.

Discover_Abstraction_2.PNG

Again , Start with concrete implementation and discover abstraction.