目录

大话设计模式3/4/5:四个设计原则

大话设计模式 3/4/5:四个设计原则

1. 单一职责原则(SRP: Single Responsibility Principle):

对一个类而言,引起它变化的原因应该只有一个。

一个类承担过多职责,会导致紧耦合,一个职责的变化会限制类完成其他职责。有多余一个动机改变一个类,那么这个类就多余一个职责。

eg.界面变化和游戏逻辑

2. 开放-封闭原则(OCP: Open Closure Principle):

软件实体(类、模块、函数等),应当对扩展开放,对修改封闭。

虽然无法做到完全对修改封闭,但是可以选择模块对哪种变化封闭。 一种策略是最初版本假设变化不会发生,一旦变化发生,立即行动通过抽象隔离同类变化,避免之后的重复修改,使得之后的同类修改可以通过增加新代码,而不是更改旧代码来实现。并且要在方法被广泛使用之前,尽早发现可能发生的变化。

eg.计算器运算的扩充,首先实现加法,在减法需求提出后,抽象出运算类,后续增加运算即可只增加新代码,而不修改旧代码。

3. 依赖倒转原则(DIP: Dependence Inversion Principle):

  1. 高层模块不应该依赖底层模块,两者都应该依赖抽象
  2. 抽象不应该依赖细节,细节应该依赖抽象

抽象不依赖细节,细节依赖抽象,实际上,就是要针对接口编程,而不要对实现编程。

4. 里氏代换原则(LSP: Liskov Substitution Principle):

子类型必须能够替换掉它们的父类型

如果软件实体使用的是一个父类的话,那么一定也可以使用它的子类,并且它察觉不出父类对象和子类对象的区别。这使得开放-封闭原则成为可能。


今天打了 kick start 虽然运气好遇到了刚做的类型,不过进步还是不小,开心!