You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Feb 2, 2019. It is now read-only.
设计模式 - 开闭原则
即 对立与统一原则
什么是开闭原则
软件实体应该对扩展开放,对修改关闭,即实体应当通过扩展实现变化,而不是修改代码实现变化
书店销售书籍
然后书写代码如下
书店出售小说类书籍,书写代码
其中,价格定义为int,不是错误,非金融类项目,取两位精度,运算过程中,扩大100倍,展示时缩小100倍。
售书
然后,发生打折。
修改接口
接口不应该修改,因为接口是持久的
修改实现类
修改getPrice()方法达到打折的目的。
但是,因为采购书籍的人,要看到实现的价格。所以不修改
扩展实现
再增加一个子类,如下
代码如下
接着修改main里面的内容即可。
变化
变化分为逻辑变化,子模块变化,可见视图变化。
使用开闭原则
抽象约束
抽象约束对一组事物的描述。
当商店增加了一个计算机书籍的销售。但是计算机书籍还有很多种,有编程语言,数据库等。
同样的,书写计算机书籍类
直接在main中添加即可。
总结 ; 对扩展开放,前提对抽象约束。
元数据控制模块
即,使用配置参数,控制模块行为。
原则总结
单一职责
类的职责要单一
里氏替换
里氏替换原则不能破坏继承
即,子类对象,可以代替超类。
依赖倒置
面向接口。
即,每个接口只负责干一件事。
接口隔离
每个接口只干一件事
迪米特法则
通信通过类之间通信。两者之间耦合度越少越好。
开闭原则
对扩展开放,对修改关闭
www.iming.info
The text was updated successfully, but these errors were encountered: