Skip to content

wjize/hfdpcode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🌟 设计原则总览(Design Principles Summary)

本文总结了软件设计中的 八大设计原则,它们是实现高内聚、低耦合、可维护软件架构的核心。

  • 当代码出现 Bad Smell 时,灵活的使用设计原则重构代码

🧾 八大设计原则列表


🎯 原则详解


📌Principle 1:依赖倒置原则(DIP)

高层模块不应该依赖低层模块,二者都应该依赖于抽象。 抽象不应该依赖于实现细节,实现细节应该依赖于抽象。

  • 稳定依赖稳定,变化依赖稳定。
  • 通过依赖抽象类或接口,消除高层与底层的直接耦合。

📌Principle 2:开放封闭原则(OCP)

对扩展开放,对修改封闭。

  • 类模块应当易于扩展难以被修改
  • 使用抽象和多态机制,让系统在不改动已有代码的前提下支持新功能。

📌Principle 3:单一职责原则(SRP)

一个类应该仅有一个引起它变化的原因。

  • 每个类只负责一个功能点。
  • 功能变化导致的修改只应影响一个类。

📌Principle 4:里氏替换原则(LSP)

子类必须能够替换其基类,行为保持一致。

  • 子类是一种父类(IS-A)关系。
  • 不破坏程序原有的正确性。

📌Principle 5:接口隔离原则(ISP)

不要强迫客户依赖他们不使用的方法。

  • 接口应小而精,不冗杂。
  • 拆分庞大的接口,使得实现类只依赖真正需要的接口。

📌Principle 6:优先使用对象组合而不是类继承(PCoI)

组合优于继承。

  • 继承属于白箱复用,耦合高、封装性差。
  • 组合属于黑箱复用,更灵活、耦合低。
  • 依赖于接口进行组合,有助于变化隔离和模块解耦。

📌Principle 7:封装变化点(EVoC)

封装变化是实现稳定架构的关键。

  • 将易变因素隔离在一个模块或类中。
  • 创建模块边界,使修改局部化,不影响其他部分。

📌Principle 8:针对接口编程而不是实现编程(PoI)

多用接口(抽象),少依赖具体类。

  • 面向接口而非实现编程,减少依赖,增强灵活性。
  • 利于后期替换、测试、扩展,实现松耦合设计。

📊 总结表格

原则编号 名称 关键词
DIP 依赖倒置 抽象优先
OCP 开放封闭 可扩展,不修改
SRP 单一职责 一个原因引起变化
LSP 里氏替换 子类替代父类
ISP 接口隔离 小接口,少依赖
PCoI 组合 > 继承 黑箱复用
EVoC 隔离不稳定点 模块化
PoI 编程抽象 降耦合

🧩 将这些原则融入实际编码实践,有助于构建灵活、可扩展、可维护的系统。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages