solid设计原则

设计模式的六大原则

  • Single Responsibility Principle:单一职责原则
  • Open Closed Principle:开闭原则
  • Liskov Substitution Principle:里氏替换原则
  • Law of Demeter:迪米特法则
  • Interface Segregation Principle:接口隔离原则
  • Dependence Inversion Principle:依赖倒置原则

单一职责原则

        就一个类而言,应该仅有一个引起它变化的原因。应该只有一个职责。如果一个变化导致多处修改,则存在重复。

        单一职责原则的核心就是控制类的粒度大小、将对象解耦、提高其内聚性。如果遵循单一职责原则将有以下优点。

  • 降低类的复杂度。一个类只负责一项职责,其逻辑肯定要比负责多项职责简单得多。
  • 提高类的可读性。复杂性降低,自然其可读性会提高。
  • 提高系统的可维护性。可读性提高,那自然更容易维护了。
  • 变更引起的风险降低。变更是必然的,如果单一职责原则遵守得好,当修改一个功能时,可以显著降低对其他功能的影响。

     举例: 七大设计原则(一):单一职责原则 - 代码天地https://www.codetd.com/article/11600110

开闭原则

        对扩展开放,对修改关闭

         开闭原则是面向对象程序设计的终极目标,它使软件实体拥有一定的适应性和灵活性的同时具备稳定性和延续性。具体来说,其作用如下。

  • 对软件测试的影响,软件测试时只需要对扩展的代码进行测试,不影响原有代码。
  • 提高代码的可复用性,粒度越小,被复用的可能性就越大;在面向对象的程序设计中,根据原子和抽象编程可以提高代码的可复用性。
  • 提高软件的可维护性,遵守开闭原则的软件,其稳定性高和延续性强,从而易于扩展和维护。

        举例: 设计模式六大原则之开闭原则 - coder、 - 博客园这是在我大学学习过程中,老师给我讲的第一个设计原则:开闭原则,至今为止,我只记住了一句话:程序对修改关闭,对扩展开放。接下来得好好理解一下这句话 一、开闭原则 开闭原则是编程中最基础、最重要的设计原则https://www.cnblogs.com/rmxd/p/12541911.html

里氏替换原则

        派生类(子类)对象可以在程式中代替其基类(超类)对象,其针对的问题:有一个功能P1,由类A完成。现需要将功能P1进行扩展,扩展后的功能为P,其中P由原有功能P1与新功能P2组成。新功能P由类A的子类B来完成,则子类B在完成新功能P2的同时,有可能会导致原有功能P1发生故障。

       里式替换即子类可以扩展父类的功能,但是不能改变父类原有的功能。也就是说,在子类继承父类的时候,除了添加新的方法完成新增功能之外,尽量不要重写父类的方法。其具体描述如下:

  • 子类必须实现父类的抽象方法,但不得重写(覆盖)父类的非抽象(已实现)方法。
  • 子类中可以增加自己特有的方法。
  • 当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
  • 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

举例:

设计模式之里氏替换原则 - lovebeauty - 博客园里氏替换原则(Liskov Substitution Principle,简称LSP): 子类可以替换父类 继承有一些优点: 任何基类可以出现的地方,子类一定可以出现。里氏替换原则是继承复用https://www.cnblogs.com/o-andy-o/p/10315188.html

迪米特法则

        即最少知识原则,一个对象应当对其他对象尽可能少的了解。不和陌生人说话

        其主要用于降低类之间的耦合

        例子:

面向对象五大原则-----迪米特法则 - 高压锅里的小白 - 博客园面向对象五大原则------迪米特法则详解https://www.cnblogs.com/xiaobai1226/p/8670245.html

接口隔离原则

        客户端不应该依赖它不需要的接口。一个类对另一个类的依赖应该建立在最小的接口上。

        举例:

        设计模式六大原则(4):接口隔离原则_三级小野怪的专栏-CSDN博客_接口隔离原则

依赖倒置原则

        程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

        举例:

依赖倒置原则_百度百科依赖倒置原则(Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。https://baike.baidu.com/item/%E4%BE%9D%E8%B5%96%E5%80%92%E7%BD%AE%E5%8E%9F%E5%88%99/6189149?fr=aladdin

说明: 该篇只是学习用,文章中的链接都是在学习过程中觉得能快速理解的各个例子~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值