• 设计模式六大原则


    设计模式六大原则

    单一职责原则SRP(Single Responsibility Principle)

    一个类,只有一个引起它变化的原因,应该只有一个职责。

    单一职责原则提出一个编写程序的标准,用“职责”或“变化原因”来衡量接口或类设计是否优良,但“职责”和“变化原因”都是不可度量的,因项目而异,因环境而异。

    单一职责原则的优点:

    • 降低类的复杂性
    • 提高类的可读性
    • 提高代码的可维护性和复用性
    • 降低因变更引起的风险

    里氏替换原则LSP(Liskov Substitution Principle)

    所有引用基类的地方必须能透明地使用其子类对象,反之则不行。

    在类中调用其他类时务必要使用父类或接口,如果不能使用父类或接口,则说明类的设计已经违背了LSP原则;如果子类不能完整地实现父类的方法,或者父类的某些方法在子类中发生“畸变”,则建议断开父子继承关系,采用依赖、聚集、组合等关系替代继承。

    在设计模式中体现里氏替换原则的模式如下:

    • 策略模式
    • 组合模式
    • 代理模式

    依赖倒置原则DIP(Dependence Inversion Principle)

    高层模块不应该依赖低层模块,两者都应依赖其抽象,抽象不依赖细节,而细节依赖抽象。

    模块间的依赖通过抽象产生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生,接口或抽象类不依赖于实现类,实现类依赖接口或抽象类。

    结合里氏替换原则使用。里氏替换原则指出父类出现的地方子类就可以出现,结合依赖倒置原则可以得出一个通俗的规则:接口负责定义抽象方法,并且声明与其他对象的依赖关系,抽象类负责公共构造部分的实现,实现类准确地实现业务逻辑,同时在适当的时候对父类进行细化。

    接口隔离原则ISP(Interface Segregation Principle)

    一个类对另外一个类的依赖性应当是建立在最小的接口上,使用多个专门的接口比使用单一的总接口要好。

    接口隔离原则和其他的设计原则一样,都是需要花费时间和精力来进行设计和筹划的,但是它带来了设计的灵活性,并降低整个项目的风险,当业务变化时能够快速应付。在设计接口时应根据经验和常识决定接口的粒度大小,如果接口粒度太小,导致接口数量剧增,给开发带来难度;如果接口粒度太大,灵活性降低,无法提供定制服务,给项目带来无法预计的风险。

    迪米特法则LoD(Law of Demeter)

    一个对象应该对其他对象有最少的了解,即一个类应该对自己需要耦合或者调用的类知道得最少。

    在设计模式中体现迪米特法则的模式如下:

    • 外观模式
    • 中介者模式

    开闭原则OCP(Open-Close Principle)

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

    开闭原则是面向对象设计的终极目标,其他设计原则都可以看做是开闭原则的实现方法。

    开闭原则的重要性体现在以下几个方面:

    • 提高复用性
    • 提高可维护性
    • 提高灵活性
    • 易于测试
  • 相关阅读:
    【python】python实现多线程并得到返回值
    python二维码识别系统的设计与实现
    MATLAB环境下基于离散小波变换的体外血管图像处理
    ASP.NET 开发几个知识点
    SpringBoot项目中使用Logback输出json格式日志
    软件测试面试中90%会遇到的问题:“你会搭建测试环境吗?”
    CUDA By Example(五)——常量内存与事件
    flask框架初学-06-对数据库的增删改查
    99%的项目失败,大多都是因为它
    八、手把手教你搭建SpringCloudAlibaba之Sentinel服务降级
  • 原文地址:https://blog.csdn.net/qq_42647711/article/details/126118783