# Discover abstraction


![Discover_Abstraction_1.PNG](https://cdn.hashnode.com/res/hashnode/image/upload/v1653037492646/fxuzLRsoK.PNG align="left")

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](https://cdn.hashnode.com/res/hashnode/image/upload/v1653037500384/C2ivo9Vkf.PNG align="left")

Again , Start with concrete implementation and discover abstraction.



