不要求所有代码都遵循设计原则,要考虑人力、时间、成本、质量,不刻意追求完美

 

 

意义

提高代码的可读性、可维护性、可复用性。

 

 

开闭原则

开闭原则(Open-Closed Principle, OCP)是指一个软件实体如类、模块和函数应该对扩展开放,对修改关闭

以课程体系为例,首先创建一个课程接口ICourse:

 设计模式系列:软件架构设计的七大原则之开闭原则_开闭原则

整个课程生态有Java 架构、大数据、人工智能、前端、软件测试等,我们来创建一个 Java 架构课程的类JavaCourse:

 

 设计模式系列:软件架构设计的七大原则之开闭原则_javad_02

 现在我们要给 Java 架构课程做活动,价格优惠。如果修改 JavaCourse 中的 getPrice() 方法,则会存在一定的风险,可能影响其他地方的调用结果。我们如何在不修改原有代码前提前下,实现价格优惠这个功能呢?现在,我们再写一个处理优惠逻辑的类, JavaDiscountCourse 类( 思考一下为什么要叫 JavaDiscountCourse , 而不叫DiscountCourse):

设计模式系列:软件架构设计的七大原则之开闭原则_可维护性_03

 

类结构图: 

设计模式系列:软件架构设计的七大原则之开闭原则_开闭原则_04