Create your own creature!!!
GoodEx -> solution where i use common abstraction and interface
BadEx -> solution without common abstraction and interface
As we see, in bad example we're losing flexability and using a lot of same code parts, which almost are not different.