七大设计原则

2023-05-16

1、开闭原则(Open Closed Principle,OCP)
  尽量通过扩展来面对需求的更改或者系统的变化,尽量不要对原有内容修改。(对新增开,对修改闭)。
  优点:不影响以上线代码的完整性,提高可扩展性。

2、单一职责原则(Single Responsibility Principle,SRP)
  不要存在多于一个导致类变更的原因,也就是每个类应该实现单一的职责,如若不然,就应该把类拆分。
  优点:好管理,结构简单,不受其它功能的影响,将对象解耦,提高可用性,降低变更风险。

3、里氏替换原则(Liskov Substitution Principle,LSP)
  继承必须确保超类所拥有的性质在子类中仍然成立。也就是只要父类出现的地方,都可以用子类替换,是对开闭原则的补充,继承复用的抽象化表达。
  重载时需要注意,入参的要求要比父类宽松(保证可以进入),返回要比父类更加严格(保证出去不会有问题),这也正是实现里氏替换的基础。
  优点:扩展性好,易于维护。

4、依赖倒置原则(Dependence Inversion Principle,DIP)
  高层模块不应该依赖低层模块,二者都应该依赖其抽象,也就是面向接口编程;接口一般是行为的集合,也就是尽可能的对行为抽象。依赖接口,不依赖具体实现。
  优点:降低了与具体实现的耦合度,提高代码的可读性及可维护性。

5、接口隔离原则(Interface Segregation Principle,ISP)
  翻译一下就是接口的功能尽可能单一,接口本质上是两个类之间关系的纽带,关系中不需要有的,在接口中不应该体现。
  每个接口中不应该存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好。
  优点:减小耦合度,降低对接口的依赖性,减少冗余代码,实现接口更加灵活。

6、迪米特法则(最少知道原则)(Law of Demeter,LoD)
  也就是说一个对象要对其他对象保持尽可能少的了解,即低耦合性,低耦合可以最大限度的保证代码的可复用性。
  这个实际上是针对被依赖的类来说的,对于被依赖的类,尽可能的将复杂的逻辑封装起来,对外只提供public方法,外部不需要知道内部的逻辑。
  优点:降低了类与类之间的耦合度,提高可复用性,可维护性。

7、合成复用原则(Composite Reuse Principle,CRP)
  尽量先使用聚合、组合来实现,之后再考虑使用继承。降低耦合度,将接口或者抽象类以聚合或者组合的方式引入,可以任意的灵活的去实现对应的子类。
  优点:更加体现出多态的优势,提高程序扩展性,更加灵活,降低对具体实现类的耦合度。
原作者博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

七大设计原则 的相关文章

随机推荐