首页 > 其他分享 >设计模式-法则大全

设计模式-法则大全

时间:2023-07-16 10:44:54浏览次数:37  
标签:依赖 法则 调用者 原则 重复 函数 接口 设计模式 大全

SOLID原则:

  • 单一职责原则SRP:一个类只负责完成一个职责或功能;要设计粒度小、功能单一的类
  • 开闭原则OCP:对扩展开放、对修改关闭;在已有基础上扩展代码(新增模块、类、方法等),而非修改已有代码(修改模块、类、方法等);
  • 里式替换LSP:父类定义了函数的“约定”(或者协议),那子类可以改变函数的内部实现逻辑,但不能改变函数原有的“约定”。和多态进行关联区分
  • 接口隔离ISP:让调用者只依赖它需要的接口
// 如果把“接口”理解为一组接口集合,可以是某个微服务的接口,也可以是某个类库的接口等。如果部分接口只被部分调用者使用,我们就需要将这部分接口隔离出来,单独给这部分调用者使用,而不强迫其他调用者也依赖这部分不会被用到的接口。
// 如果把“接口”理解为单个 API 接口或函数,部分调用者只需要函数中的部分功能,那我们就需要把函数拆分成粒度更细的多个函数,让调用者只依赖它需要的那个细粒度函数。
// 如果把“接口”理解为 OOP 中的接口,也可以理解为面向对象编程语言中的接口语法。那接口的设计要尽量单一,不要让接口的实现类和调用者,依赖不需要的接口函数。
  • 依赖注入DI:不通过 new 的方式在类内部创建依赖类的对象,而是将依赖的类对象在外部创建好之后,通过构造函数、函数参数等方式传递(或注入)给类来使用。

KISS原则:Keep It Simple and Stupid--“如何做”的问题(尽量保持简单)

YANGI原则:You Ain’t Gonna Need It--“要不要做”的问题(当前不需要的就不要做)

DRY原则:Don’t Repeat Yourself--懂得界定:实现逻辑重复、功能语义重复、代码执行重复

// 实现逻辑重复,但功能语义不重复的代码,并不违反 DRY 原则。
// 实现逻辑不重复,但功能语义重复的代码,也算是违反 DRY 原则。
// 代码执行重复也算是违反 DRY 原则。

迪米特法则LOD:The Least Knowledge Principle--最小知识原则

// 不该有直接依赖关系的类之间,不要有依赖;
// 有依赖关系的类之间,尽量只依赖必要的接口(也就是定义中的“有限知识”)。

标签:依赖,法则,调用者,原则,重复,函数,接口,设计模式,大全
From: https://www.cnblogs.com/little-bean-sprout/p/17557551.html

相关文章

  • Markdown语法大全
    使用Markdown进行文档编辑Markdown是一种轻量级的标记语言,广泛用于编写文档和格式化文本。它具有简洁、易读、易写的特点,适用于各种场景,如写博客、编写文档、撰写README文件等。标题在Markdown中,你可以使用不同数量的#符号来创建标题。一个#表示一级标题,两个#表示二级标题,以此......
  • 02-设计模式-观察者模式
    观察者模式涉及的对象:观察者接口、观察者接口的实现类被观察者接口、被观察者接口的实现类1、观察者接口-代码:publicinterfaceObserver{voidupdate(Stringmsg);}2、观察者接口的实现类-代码:publicclassObserverImplimplementsObserver{privateSt......
  • 01-设计模式-代理模式
    1、代理模式的分类代理模式分为:静态代理:在编译阶段确定了被代理对象的类型,简单。动态代理:在运行阶段确定了被代理对象的类型,复杂。2、静态代理静态代理涉及的类:一个接口,下面的例子中命名为Subject实现了接口的被代理对象RealSubject实现了接口的代理对象StaticProxy......
  • python魔术方法大全 基础篇、比较篇
    魔术方法大全魔术方法官方名称叫specialmethod,所谓的魔术方法就是python让用户客制化一个类的方式,顾名思义就是定义在类里面的一些特殊的方法。这些specialmethod的特点就是它的method的名字,前后都有两个下划线,所以这些方法也被称为Dundermethod。基础篇比较篇属性篇类......
  • Linux常用命令大全
    Linux常用命令大全1.Linux管理文件和目录的命令命令 功能 命令 功能Pwd 显示当前目录 ls 查看目录下的内容Cd 改变所在目录 cat 显示文件的内容Grep 在文件中查找某字符 cp 复制文件Touch 创建文件 mv 移动文件Rm 删除文件 rmd......
  • JAVA设计模式之责任链模式
    设计模式设计模式(DesignPattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、......
  • ESP32 – GPIO 引脚参考大全
     ESP32–GPIO引脚参考大全ESP32模组引脚图ESP32开发板引脚图不建议使用或限制使用的引脚Strapping引脚集成在ESP-WROOM-32的SPIflash引脚仅输入引脚ESP32周边设备:18个模数转换器(ADC)通道4组SPI接口I2C通讯协议PWM数模转换器(DAC)I2S高......
  • 什么是STAR法则?什么是PDCA?这两个法则有什么区别和联系?
    STAR法则是一种用于回答面试问题或撰写工作经历的方法。它是指Situation(情境)、Task(任务)、Action(行动)和Result(结果)的缩写。按照STAR法则,回答问题或描述经历时,首先阐述面临的情境或任务,然后描述所采取的具体行动,并最后强调所取得的结果。PDCA是Plan-Do-Check-Act的缩写,也被称为循环......
  • delphi常用函数大全
    delphi常用函数大全(转)Abort函数引起放弃的意外处理Abs函数绝对值函数AddExitProc函数将一过程添加到运行时库的结束过程表中Addr函数返回指定对象的地址AdjustLineBreaks函数将给定字符串的行分隔符调整为CR/LF序列Align属性使控件位于窗口某部分Alignment属性控件标签的文......
  • java设计模式实现结论
    Java设计模式实现结论场景描述在软件开发过程中,我们经常会遇到一些常见的问题和需求。为了提高代码的复用性、可维护性和可扩展性,使用设计模式是一个非常好的选择。设计模式是一种被反复验证的、经过优化的解决方案,可以解决特定问题的代码设计问题。流程概述为了实现设计模式,我......