六大原则

https://www.jianshu.com/p/712221ff7ffe

https://www.cnblogs.com/toutou/p/4870926.html#_label0
https://www.xiaohongshu.com/discovery/item/5c3b1b99000000000d02ab3d/


  • 开闭原则
    一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。

  • 里氏代换原则
    实现“开-闭”原则的关键步骤就是抽象化,由抽象的接收承载具体的。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。

  • 依赖倒转原则
    抽象不应该依赖于细节,细节应当依赖于抽象,要针对接口编程,而不是针对实现编程。
    依赖倒置原则要求我们在程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类,即使用接口或抽象类进行变量类型声明、参数类型声明、方法返回类型声明,以及数据类型的转换等,而不要用具体类来做这些事情。为了确保该原则的应用,一个具体类应当只实现接口或抽象类中声明过的方法,而不要给出多余的方法,否则将无法调用到在子类中增加的新方法。

  • 单一职责原则
    一个类只负责一个功能领域的相应职责,即就一个类而言,应该只有一个引起它变化的原因。
    单一职责原则是实现高内聚、低耦合,它是最简单但又最难运用的原则,需要设计人员发现类的不同职责并将其分离,而发现类的多重职责需要设计人员具有较强的分析设计能力和相关实践经验。

  • 接口隔离原则ISP
    使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。接口仅仅提供客户端需要的行为,客户端不需要的行为则隐藏起来,应当为客户端提供尽可能小的单独的接口,而不要提供大的总接口。这种机制也称为”定制服务“,即为不同的客户端提供宽窄不同的接口。
    在使用接口隔离原则时,我们需要注意控制接口的粒度,接口不能太小,如果太小会导致系统中接口泛滥,不利于维护;接口也不能太大,太大的接口将违背接口隔离原则,灵活性较差,使用起来很不方便。一般而言,接口中仅包含为某一类用户定制的方法即可,不应该强迫客户依赖于那些它们不用的方法。

  • 迪米特法则
    一个软件实体应当尽可能少地与其他实体发生相互作用。
    如果一个系统符合迪米特法则,那么当其中某一个模块发生修改时,就会尽量少地影响其他模块,扩展会相对容易,这是对软件实体之间通信的限制,迪米特法则要求限制软件实体之间通信的宽度和深度。迪米特法则可降低系统的耦合度,使类与类之间保持松散的耦合关系。
    迪米特法则要求我们在设计系统时,应该尽量减少对象之间的交互,如果两个对象之间不必彼此直接通信,那么这两个对象就不应当发生任何直接的相互作用,如果其中的一个对象需要调用另一个对象的某一个方法的话,可以通过第三者转发这个调用,即通过引入一个合理的第三者来降低现有对象之间的耦合度。

在将迪米特法则运用到系统设计中时,注意下面几点:

  • 类的划分:尽量创建松耦合的类,类之间的耦合度越低,就越有利于复用,一个处在松耦合中的类一旦被修改,不会对关联的类造成太大波及。
  • 类的结构设计:每一个类都应当尽量降低其成员变量和成员函数的访问权限。
  • 类的设计:只要有可能,一个类型应当设计成不变类。
  • 对其他类的引用:,一个对象对其他对象的引用应当降到最低。

你可能感兴趣的:(六大原则)