Word of caution while using Core Design Patterns

Word of caution while using design patterns

During my trainings one of the very important best practice that I make my participants remember and understand is "Using design patterns for the sake of using is a Sin".

Many a times I have come across professionals who to impress their colleagues try to use as much patterns as possible thinking that more the patterns used …better is the design of a system.

This is a complete fallacy.

As mentioned in the "Disadvantages of Core Design Patterns" … All the Object scope based design patterns will use a level of indirection to increase the flexibility of the system wrt some parameter which will definitely reduce the performance of the system by a particular factor.

As we know we are in the world of ASAP … where in we want every thing as soon as possible (ASAP) … performance becomes very critical. No customer will tolerate a slow performing system.

Hence every level of indirection that is introduced within a system should be thoroughly questioned. Questions should be asked whether the level of indirection is absolutely needed within a system to increase the usability, flexibility and security of a system.

Also the reasoning behind the usage of a design pattern becomes extremely important. It is quite possible for two different designers designing the same system but using different design patterns. It is acceptable provided that both of them have convincing reasons behind the need of the same.

Hemant Jha
Founder - VPlanSolutions
Researcher, Trainer