1)对于扩展是开放的(Open for extension)
2)对于修改是关闭的(Closed for modification)
开闭原则的好处
如果一个
软件系统符合开闭原则的,那么从
软件工程的角度来看,它至少具有这样的好处:
可复用性好。
我们可以在软件完成以后,仍然可以对软件进行扩展,加入新的
功能,非常灵活。因此,这个
软件系统就可以通过不断地增加新的组件,来满足不断变化的需求。
可维护性好。
由于对于已有的
软件系统的组件,特别是它的抽象底层不去修改,因此,我们不用担心软件系统中原有组件的稳定性,这就使变化中的软件系统有一定的稳定性和延续性。
开闭原则具有理想主义的色彩,它是
面向对象设计的终极目标。因此,针对开闭原则的实现方法,一直都有
面向对象设计的大师费尽心机,研究开闭原则的实现方式。后面要提到的
里氏代换原则(LSP)、
依赖倒转原则(DIP)、
接口隔离原则(ISP)以及
抽象类(Abstract Class)、
接口(Interface)等等,都可以看作是开闭原则的实现方法。