What is the meaning and reasoning behind the Open/Closed Principle?

Phillip Wells picture Phillip Wells · Sep 12, 2008 · Viewed 7.7k times · Source

The Open/Closed Principle states that software entities (classes, modules, etc.) should be open for extension, but closed for modification. What does this mean, and why is it an important principle of good object-oriented design?

Answer

aku picture aku · Sep 12, 2008

It means that you should put new code in new classes/modules. Existing code should be modified only for bug fixing. New classes can reuse existing code via inheritance.

Open/closed principle is intended to mitigate risk when introducing new functionality. Since you don't modify existing code you can be assured that it wouldn't be broken. It reduces maintenance cost and increases product stability.