六大设计原则
开闭原则
定义: Software entities like classes, modules and functions should be open for extension but closed for modifications. 一个软件实体应该对扩展开放,对修改关闭。
定义解析:一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。
简介
开闭原则(OCP,Open Close Principle)是面向对象设计中“可复用设计”的基石,是面向对象设计中最重要的原则之一,其它很多的设计原则都是实现开闭原则的一种手段。
"开-闭"原则是说,在设计模块的时候,应当使这个模块在不被修改的前提下,进行扩展。举例如下,孙悟空大闹天宫时,玉帝给了一个弼马温的职位。在天庭的职位体系中,扩展一个弼马温的职位并未修改天庭中其他职位系统。
在这个例子中,“文武仙卿”就是各个职位的一个抽象,在不改变抽象层的情况下,扩展了实现层。从而满足了“开-闭”原则。
抽象化是实现“开-闭”原则的关键,不允许更改的是抽象层,允许扩展的是实现层。
在Java中可以定义出一个一劳永逸,不在修改的抽象设计。此设计允许有无穷无尽的行为在实现层被实现。在任何扩展的情况下,使得抽象层不被修改。
系统设计满足“开闭”原则的好处:
1.使变化中的系统有一定的适应性和灵活性。通过扩展已有的软件系统,提供新的功能,满足新的需求。
2.使变化中的软件系统有一定的稳定性和延续性。已有的软件模块,特别是抽象层模块不能修改。