文章目录
- 软件设计原则的分类
- 开闭原则
- 依赖倒置原则
- 单一职责原则
- 接口隔离原则
- 迪米特法则(最少知道原则)
- 里氏替换原则
- 合成/复用原则(组合/复用原则)
软件设计原则的分类
- 开闭原则
- 依赖倒置原则
- 单一职责原则
- 接口隔离原则
- 迪米特法则(最少知道原则)
- 里氏替换原则
- 合成/复用原则(组合/复用原则)
在设计模式中会有这7中软件设计原则的体现,但是值得注意的是这7钟设计原则在设计模式中的使用是有取舍的,有的可能是完整的体现,也可能是部分地体现设计原则;有的可能使用了,有的可能没有使用等。
软件设计原则的学习应为软件设计模式的学习打好基础
开闭原则
定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
核心思想:用抽象构建框架,用实现扩展细节
优点:提高软件系统的可复用性及可维护性
开闭原则是面向对象最基础的设计原则,它能够帮助我们开发稳定灵活的系统
下面来演示一下:
场景描述:现在要卖“雪花酥”小蛋糕大礼包,雪花酥小蛋糕大礼包的属性有编 ,价格,口味。
首先定义一个接口:
实现类
测试:
结果是正常的
转换成UML图:
最近618 淘宝也搞活动了雪花酥要进行打8折了。
这个时候的开发要注意了 不要动接口 不要动接口 接口作为契约应该是可靠的,稳定的。
添加一个类
测试
依赖倒置原则
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象
抽象不应该依赖细节;细节应该依赖抽象
针对接口编程,不要针对实现编程
注意
每个类都尽量继承自接口或者抽象类(可以继承抽象类实现接口方法)
尽量不要从具体的类派生
尽量不要覆盖其基类的方法
优点:
可以减少类间的耦合性、提高系统稳定性,提高代码可读性和可维护性,可降低修改程序所造成的风险
下面来演示一下:
小明对淘宝上卖的鼠标 和 键盘都比较感兴趣
首先演示一个面向实现编程的例子
Buy类
Test
假如小明又想买 鼠标垫
在Buy类中添加
就是妥妥的面向实现编程
这个是与 依赖倒置 原则 是背道而驰的
高层次的模块不应该依赖低层次的模块
下面演示 满足依赖倒置原则的情况
创建一个Things接口
继承接口的类:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!