Abstract Factory
Encapsulate a group of individual factories
Encapsulate a group of individual factories
适配器通过内部使用新接口规定的属性/方法, 创建一个外观与旧接口一致的方法
Clean Architecture
Split large class or set of closely related classes into two separate hierarchies:
Flexible object creation with chain style calls.
一种将请求在一串对象中传递的方式, 寻找可以处理这个请求的对象:
- 逻辑正确.
需要向某些对象发送请求:
- 封装: 组合模式将对象组合成树形结构, 以表示 部分+整体 的层次结构.
- 重写/重载/扩展对象原有的行为 (Methods), 但不改变对象原有属性.
封装复杂逻辑:
Creating objects without specify exact object class:
减小内存开销 (Performance Optimization):
- IoC (Inversion of Control) 控制反转模式: 将组件间的依赖关系从程序内部提到外部来管理.
一个 Iterator 对象封装访问和遍历一个聚集对象中的各个构件的方法:
一个 Mediator 对象封装对象间的协议 (中央集权的控制中心):
将多个对象的属性混入同一个对象, 达到继承/扩展/组合的效果.
- 被观察者 (Subject) 维护一组观察者列表,
Programming Paradigms
Software design is the art of managing dependencies and abstractions.
可以使用原型模式来减少创建新对象的成本:
通过一个代理对象:
- 发布-订阅模式是借助第三方来实现调度, 发布者和订阅者之间互不感知.
- Extract function: 复用代码.
- Redux/VueX global store.
- Single Responsibility Principle: 单一功能原则.
一个 State 对象封装一个与状态相关的行为,
- 改变对象的内核/算法, 一个 Strategy 对象封装一个算法, 相互可以替换.
- Abstract superclass defines the skeleton of an operation
Separating an algorithm from an object structure on which it operates.