软件设计的七大原则--你知道几个?

开闭原则

定义:一个软件的实体如:类、方法应该对扩展开放,对修改关闭;在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果;用接口和抽象构建框架,用实现去实现具体的细节。

优点:增加软件系统的稳定性,提高可复用性及可维护性。

单一职责原则

定义:一个类、接口、方法只负责一个功能领域中的相应职责,核心就是控制类的粒度大小、将对象解耦、提高其内聚性。

优点:降低类的复杂度,提高类的可读性,提高系统的可维护性,变更引起的风险降低。

接口隔离原则

定义:各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。接口隔离原则注重的是对接口依赖的隔离。

优点:将臃肿庞大的接口分解为多个粒度小的接口,提高系统的灵活性和可维护性;合理定义接口的粒度大小,提高系统的稳定性;使用多个专门的接口还能够体现对象的层次。

迪米特法则

定义:一个对象应该对其他对象保持最少的了解,使得系统功能模块相对独立,又叫最少知道原则。

优点:降低类之间的耦合

强调只和朋友交流,不和陌生人说话

朋友:出现在成员变量、方法的输入、输出参数中的类称为成员朋友类,而出现在方法体内部的类不属于朋友类。

里氏替换原则

定义:任何父类可以出现的地方,子类一定可以出现,所有引用父类的地方必须能透明地使用其子类的对象,子类对象能够替换父类对象,而程序逻辑不变。

引申意义:子类可以扩展父类的功能,但不能改变父类原有的功能。

含义1:子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。

含义2:子类中可以增加自己特有的方法。

含义3:当子类的方法重载父类的方法时,方法的前置条件(即方法的输入/入参)要比父类方法的输入参数更宽松。

含义4:当子类的方法实现父类的方法时(重写/重载或实现抽象方法)方法的后置条件(即方法的输出/返回值)要比父类更严格或相等。

优点:约束继承泛滥,开闭原则的一种体现;加强程序的健壮性,同时变更时也可以做到非常好的兼容性、提高程序的维护性、扩展性;降低需求变更时引入的风险。

依赖倒置原则

定义:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。其核心思想是:要面向接口编程,不要面向实现编程;使用接口或者抽象类的目的是制定好规范和契约,而不去涉及任何具体的操作,把展现细节的任务交给它们的实现类去完成。

优点:降低修改程序的频率,增加系统的稳定性,提高代码可读性和可维护性。

合成复用原则

定义:尽量使用合成/聚合,而不是通过继承达到复用的目的。

优点:降低类与类之间的藕合度,维持类的封装性,增加复用的灵活性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 写在前面 软件设计七大原则开闭原则里氏替换原则依赖倒置原则单一职责原则接口隔离原则迪米特法则合成复用原则 创建型模...
    mtry阅读 504评论 0 0
  • 点关注,不迷路;持续更新Java架构相关技术及资讯热文!!! 1.开闭原则 定义:一个软件实体如类,模块和函数应该...
    Java_苏先生阅读 554评论 0 1
  • 1. 开闭原则 定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。定义补充:用抽象构建框架,用实现扩展...
    最后的轻语_dd43阅读 7,770评论 1 7
  • 1.开闭原则 一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。用抽象构建框架,用实现扩展细节解释:当我们有...
    ddxuzengbin阅读 1,695评论 1 1
  • 七大原则 原则一-- 开闭原则 原则二-- 依赖倒置原则 原则三-- 单一职责原则 原则四-- 接口隔离原则 原则...
    竹blue阅读 275评论 1 2