Skip to content
ashvik edited this page Dec 15, 2014 · 5 revisions

This framework enables developer to think about breaking any software piece into smaller and independent components which is responsible to do a single type of job. To develop certain functionality the normal approach is to target the higher level job and design the piece to fulfill the requirement. To do so developer creates a class and add functionalists in the form of methods and to make code more cleaner he/she introduces some abstract class which can be inherited and contains common methods.

So ultimately developer develops smaller pieces but without defining proper boundaries. Boundaries play very critical roll in software design. If we know that from where any particular piece starts and where it ends then it becomes very easy to maintain that piece. This can be achieved by designing independent and single responsible components or classes. If we write a class which does only one type of job and is self contained then at any point of time we know that who is responsible for what and which class should be targeted to make any required change. So making boundaries more clear.

![Figure 1](C:\Users\amishra\Desktop\12-15-2014 6-57-32 PM.png)

Clone this wiki locally