当前位置: 首页 > news >正文

同步异步日志系统-设计模式

六大原则

单⼀职责原则(Single Responsibility Principle)

类的职责应该单⼀,⼀个⽅法只做⼀件事。职责划分清晰了,每次改动到最⼩单位的⽅法或

类。

使⽤建议:两个完全不⼀样的功能不应该放⼀个类中,⼀个类中应该是⼀组相关性很⾼的函

数、数据的封装

⽤例:⽹络聊天:⽹络通信 & 聊天,应该分割成为⽹络通信类 & 聊天类

开闭原则(Open Closed Principle)

对扩展开放,对修改封闭

使⽤建议:对软件实体的改动,最好⽤扩展⽽⾮修改的⽅式。

⽤例:超时卖货:商品价格---不是修改商品的原来价格,⽽是新增促销价格。

⾥⽒替换原则(Liskov Substitution Principle)

通俗点讲,就是只要⽗类能出现的地⽅,⼦类就可以出现,⽽且替换为⼦类也不会产⽣任何错 误或异常。

在继承类时,务必重写⽗类中所有的⽅法,尤其需要注意⽗类的protected⽅法,⼦类尽量不要 暴露⾃⼰的public⽅法供外界调⽤。

使⽤建议:⼦类必须完全实现⽗类的⽅法,孩⼦类可以有⾃⼰的个性。覆盖或实现⽗类的⽅法 时,输⼊参数可以被放⼤,输出可以缩⼩

⽤例:跑步运动员类-会跑步,⼦类⻓跑运动员-会跑步且擅⻓⻓跑, ⼦类短跑运动员-会跑步且 擅⻓短跑

依赖倒置原则(Dependence Inversion Principle)

⾼层模块不应该依赖低层模块,两者都应该依赖其抽象. 不可分割的原⼦逻辑就是低层模式,原 ⼦逻辑组装成的就是⾼层模块。

模块间依赖通过抽象(接⼝)发⽣,具体类之间不直接依赖

使⽤建议:每个类都尽量有抽象类,任何类都不应该从具体类派⽣。尽量不要重写基类的⽅

法。结合⾥⽒替换原则使⽤。

⽤例:奔驰⻋司机类--只能开奔驰; 司机类 -- 给什么⻋,就开什么⻋; 开⻋的⼈:司机--依

赖于抽象

迪⽶特法则(Law of Demeter),⼜叫“最少知道法则”

尽量减少对象之间的交互,从⽽减⼩类之间的耦合。⼀个对象应该对其他对象有最少的了解。

对类的低耦合提出了明确的要求:

只和直接的朋友交流, 朋友之间也是有距离的。⾃⼰的就是⾃⼰的(如果⼀个⽅法放在本类

中,既不增加类间关系,也对本类不产⽣负⾯影响,那就放置在本类中)。

⽤例:⽼师让班⻓点名--⽼师给班⻓⼀个名单,班⻓完成点名勾选,返回结果,⽽不是班⻓点 名,⽼师勾选

接⼝隔离原则(Interface Segregation Principle)

客⼾端不应该依赖它不需要的接⼝,类间的依赖关系应该建⽴在最⼩的接⼝上

使⽤建议:接⼝设计尽量精简单⼀,但是不要对外暴露没有实际意义的接⼝。

⽤例:修改密码,不应该提供修改⽤⼾信息接⼝,⽽就是单⼀的最⼩修改密码接⼝,更不要暴 露数据库操作

从整体上来理解六⼤设计原则,可以简要的概括为⼀句话,⽤抽象构建框架,⽤实现扩展细节,具体 到每⼀条设计原则,则对应⼀条注意事项:

单⼀职责原则告诉我们实现类要职责单⼀;

⾥⽒替换原则告诉我们不要破坏继承体系;

依赖倒置原则告诉我们要⾯向接⼝编程;

接⼝隔离原则告诉我们在设计接⼝的时候要精简单⼀;

迪⽶特法则告诉我们要降低耦合;

开闭原则是总纲,告诉我们要对扩展开放,对修改关闭。

相关文章:

  • Zabbix 7.2实操指南:基于OpenEuler系统安装Zabbix 7.2
  • 《数组》学习——区间和
  • 修改MySQL密码
  • 【大模型系列篇】DeepSeek-R1如何通过强化学习有效提升大型语言模型的推理能力?
  • #渗透测试#批量漏洞挖掘#畅捷通T+远程命令执行漏洞
  • Linux自学day23-进程和线程
  • 【Java】代理模式
  • 激光工控机在自动化生产线中有什么关键作用?
  • Java 中创建线程的几种方式
  • [数据结构] Map的使用与注意事项
  • element-plus树形数据与懒加载的实现
  • kettle从入门到精通 第九十二课 ETL之kettle 使用Kettle的Carte对外发布读写接口
  • 设计模式教程:命令模式(Command Pattern)
  • .NET版PDF处理控件Aspose.PDF教程:在 C# 中将 TIFF 文件转换为 PDF
  • hive迁移补数脚本细粒度 表名-分区唯一键
  • C语言基础系列【15】union 共用体
  • Apache Doris 实现毫秒级查询响应
  • 【RabbitMQ业务幂等设计】RabbitMQ消息是幂等的吗?
  • Ubuntu安装PostgreSQL
  • 城市地质安全专题连载⑦ | 加强国土空间规划管控,规避城市地质安全风险
  • 沈阳网站外包公司/十种营销方式
  • 校园网站建设服务/品牌推广和营销推广
  • 长沙正规企业网站制作平台/搜索引擎营销的模式有哪些
  • 做公司网站需要什么程序/下拉框关键词软件
  • 郑州网站公司排名/品牌推广运营策划方案
  • win7如何做网站/培训加盟