【Java设计模式】软件设计七大原则

文章目录

  • 软件设计原则的分类
  • 开闭原则
  • 依赖倒置原则
  • 单一职责原则
  • 接口隔离原则
  • 迪米特法则(最少知道原则)
  • 里氏替换原则
  • 合成/复用原则(组合/复用原则)

软件设计原则的分类

  1. 开闭原则
  2. 依赖倒置原则
  3. 单一职责原则
  4. 接口隔离原则
  5. 迪米特法则(最少知道原则)
  6. 里氏替换原则
  7. 合成/复用原则(组合/复用原则)

在设计模式中会有这7中软件设计原则的体现,但是值得注意的是这7钟设计原则在设计模式中的使用是有取舍的,有的可能是完整的体现,也可能是部分地体现设计原则;有的可能使用了,有的可能没有使用等。
软件设计原则的学习应为软件设计模式的学习打好基础

开闭原则

定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。

核心思想:用抽象构建框架,用实现扩展细节

优点:提高软件系统的可复用性及可维护性

开闭原则是面向对象最基础的设计原则,它能够帮助我们开发稳定灵活的系统

下面来演示一下:
场景描述:现在要卖“雪花酥”小蛋糕大礼包,雪花酥小蛋糕大礼包的属性有编 ,价格,口味。

首先定义一个接口:

实现类

测试:

结果是正常的
转换成UML图:

最近618 淘宝也搞活动了雪花酥要进行打8折了。

这个时候的开发要注意了 不要动接口 不要动接口 接口作为契约应该是可靠的,稳定的。

添加一个类

测试

依赖倒置原则

定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象

抽象不应该依赖细节;细节应该依赖抽象

针对接口编程,不要针对实现编程

注意
每个类都尽量继承自接口或者抽象类(可以继承抽象类实现接口方法)
尽量不要从具体的类派生
尽量不要覆盖其基类的方法

优点:
可以减少类间的耦合性、提高系统稳定性,提高代码可读性和可维护性,可降低修改程序所造成的风险

下面来演示一下:
小明对淘宝上卖的鼠标 和 键盘都比较感兴趣

首先演示一个面向实现编程的例子
Buy类

Test

假如小明又想买 鼠标垫
在Buy类中添加

就是妥妥的面向实现编程
这个是与 依赖倒置 原则 是背道而驰的

高层次的模块不应该依赖低层次的模块

下面演示 满足依赖倒置原则的情况
创建一个Things接口

继承接口的类:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月27日
下一篇 2019年7月27日

相关推荐