This is part two of a five part series about SOLID class design principles by Robert C. Martin.
The SOLID principles focus on achieving code that is maintainable,
robust, and reusable. In this post, I will discuss the Open Closed
Principle.
The Open Closed Principle (OCP): You should be able to extend a classes behavior, without modifying it.
The OCP is sometimes alternatively defined as:
A class should be open to extension, but closed to modification.
Robert Martin sums up the rationale for the OCP like this:
"When a single change to a program results in a cascade
of changes to dependent modules, that program exhibits the undesirable
attributes that we have come to associate with 'bad' design. The program
becomes fragile, rigid, unpredictable and unreusable. The open-closed
principle attacks this in a very straightforward way. It says that you
should design modules that never change. When requirements change, you
extend the behavior of such modules by adding new code, not by changing
old code that already works." — Robert Martin
The Benefits
As
stated by Robert Martin, classes that must be modified to accommodate
new changes are fragile, rigid, unpredictable and unreusable. By
insulating the class from changes, the class becomes robust, flexible,
and reusable. Also as no modifications are made to the code no bugs can
be introduced, leading to code that only becomes more stable over time
through testing. The ability to reuse a class that has been working for
years without modification is clearly preferable to modifying the class
every time requirements change.
No comments:
Post a Comment