设计模式之禅学习笔记(还没写完)

本文详细阐述了软件设计中的六大核心原则:单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则及开闭原则。通过对这些原则的深入解析,帮助读者理解如何构建更高效、灵活且易于维护的软件系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

六大设计原则

1.单一职责原则(SRP)

《there should never be more than one reason for a class to change》:要求一个接口或类只有一个原因引起变化,也就是一个接口或类负责一件事情(一类事情)

好处

  • 类的复杂性减低,实现什么职责都有清晰明确的定义;
  • 可读性提高,负责性降低,可读性提高,可维护性提高;
  • 变更引起的风险减低,一个接口只对

坏处

  • 类的数量剧增,维护麻烦
  • 难以细分类的职责
  • it is hard to see

2.里氏替换原则(LSP)

所有引用基类的方法必须能透明地使用其子类的对象

  • 子类必须完全实现父类的方法
  • 子类可以有自己的方法和属性
  • 覆盖或实现父类的方法时输入参数可以被放大
  • 覆盖或实现父类的方法时输出结果可以被缩小

3.依赖倒置原则(DIP)

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

依赖的三种写法:
(1)构造函数传递依赖对象,构造函数注入
(2)setter方法传递依赖对象
(3)接口声明依赖对象

实现的规则

  • 每个类尽量都有接口或抽象类,或者两者都具备、
  • 任何类都不应该从具体类派生
  • 变量的表面类型尽量是接口或抽象类
  • 尽量不要覆写/重写基类的方法
  • 结合里氏替换原则使用

4.接口隔离原则(ISP)

5.迪米特法则(LOD)

6.开闭原则(OCP)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值