在软件组件的设计中,如果职责划分地不明确,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复的代码,这时候的关键是划清责任。
典型模式:
- Decorator
- Bridge
1.Decorator
2.Bridge
Motivation:
- 由于某些类型的固有的实现逻辑,使得他们具有两个变化的维度,乃至多个维度的变化;
- 如何应对这种“多维度的变化?如何利用面向对象技术来使得类型可以轻松地沿着两个乃至多个方向变化,而不引入额外的复杂度?
模式定义:
将抽象部分(业务功能)与实现部分(平台实现)分离,使它们都可以独立地变化。