# 设计原则

# 单一职责

一个类只负责一个功能领域中的相应职责

几乎所有程序员都知道 高内聚、低耦合,应该把相关代码放一起

关键句

  • 当你修改 A 功能,B 功能不应该被牵涉修改
  • 比较难命名的肯定就对职责定义不清晰
  • 代码行过多

# 接口隔离

类之间的依赖关系应该建立在最小的接口上

接口隔离和单一职责的区别:

范围区别:单一职责原则是针对模块、类、接口的设计,接口隔离原则相对单一职责更侧重接口的设计。

接口隔离主要面向调用者:调用者只使用部分接口或者接口的部分功能,那接口的设计就不够单一。

关键句

  • 必须满足 单一职责原则,在满足高内聚的前提下,接口中的方法越少越好

# 开闭原则

对扩展开放,对修改关闭

关键句

  • 开闭原则不是完全杜绝修改,而是以最小的修改代码代价来完成新功能开发
  • 实现开闭原则的关键就是抽象化
  • 找到系统的可变因素,将它封装起来

# 里氏替换

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

通俗的来说:子类可以扩展父类的功能,但不能改变父类原有的功能

# 依赖倒置

依赖于抽象,不能依赖于具体实现

依赖注入写法: • 构造注入 (Constructor Injection) :通过 构造函数 注入实例变量。 • 设值注入 (Setter Injection) :通过 Setter 方法 注入实例变量。

# 合成/聚合复用原则

尽量使用合成/聚合,而不是通过继承达到复用的目的

关键句

  • 继承层次超过 3 次。如果这样的话,可以考虑重构你的代码,或者重新设计结构.

# 最少知识原则

一个软件实体应当尽可能少的与其他实体发生相互作用

关键句

  • 不要和“陌生人”说话
  • 只与你的直接朋友通信
  • 每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。
  • 一个对象对其他对象的引用应当降到最低

# 写前端业务的结合思考

  1. 思考页面或者组件的职责,仅实现职责,不要做多余事情,(单一职责)
  2. 思考职责未来拓展可能性,(开闭原则)
  3. 属于职责内的功能尽量内聚,仅暴露职责相关 props(接口隔离)
lastUpdate: 4/19/2022, 3:47:51 AM