是什么?
Open-Closed Principle,"开闭原则"百科上是这么说的:一个软件实体(如类、模块、函数)应该对扩展开放,对修改关闭。
为什么?
开闭原则是面向对象设计原则中最基础的原则,可称之为原则的原则,也可以说是原则的指导思想,它强调的是既稳定又灵活,在不修改源代码的情况下又增加了新功能,核心思想是面向抽象编程。
"开闭原则是抽象类,其他五大原则是具体的实现类。"对测试的影响,可以提高复用性,提高可维护性,面向对象开发的要求。
怎么用?
(来说说抽象,抽象是对一组事物的通用描述,它没有具体的实现,也就表示它有很多的可能性,在程序语言中抽象表现为在接口或抽象类定义一些可变的行为,并且能够实现对扩展开放,其包含三层含义:
第一,通过接口或抽象类约束扩展,对扩展进行边界限定,不允许出现在接口或者抽象类中不存在的public方法;
第二,参数类型、引用对象尽量使用接口或者抽象类,而不是实现类,类之间使用interface交互。
第三,抽象层保持稳定,一旦确定即不允许修改。)
打折需求通过使用继承、List中IBook的使用是关键。
比如增加了一个需求,书店增加计算机书籍,它不仅包含名称、价格、作者,还包含了一个新属性"领域",实现如类下关系图:
最后再说说封装变化,包含两层含义: