开-闭原则:是说软件实体(类、模块、函数等等),应该可以扩展,但是不可修改。
这个原则其实有两个特性:一个是说‘对于扩展是开放的(Open for extension)’,另一个是说‘对于更改是封闭的(Closed for modification)’。
面对需求,对程序的改动是通过增加新代码进行的,而不是改动现有的代码,这就是开-闭原则的精神所在。
开-闭原则是面向对象设计的核心所在,遵循这个原则可以带来面向对象技术所声称的巨大好事,也就是可维护、可扩展、可复用、灵活性好。开发人员应该仅对程序中频繁出现变化的那部份做出抽象,然而,对于应用程序中的每个部分都可以得进行抽象同样不是一个好主意。拒绝不成熟的抽象和抽象本省一样重要,切记,切记。