Chapter10

多态:如何处理基于类型的选择?如何创建可插拔的软件构件?

解决方案:当相关选择或行为随类型(类)有所不同时,使用多态操作作为变化的行为类型分配职责。推论:不要测试对象的类型,也不要使用条件逻辑来执行基于类型的不同选择

纯虚构:当你并不想违背高内聚和低耦合或者其他目标,但是基于专家模式所提供的方案又不合适时,哪些对象应该承担这一职责?

解决方案:对人为制造的类分配一组高内聚的职责,该类并不代表问题领域的概念—虚构的事物,用以支持高内聚、低耦合和复用。这种类是凭空虚构的。

间接性:为了避免两个或多个事物之间直接耦合,应该如何分配职责?如何使用对象解耦合,以支持低耦合并提高复用性潜力?

解决方案:将职责分配给中介对象,使其作为其他构件或服务之间的媒介,以避免它们之间的直接耦合。中介实现了其他构件之间的间接性

防止变异:如何设计对象、子系统和系统,使其内部的变化或不稳定不会对其他元素产生不良影响?

解决方案:识别预计变化或不稳定之处,分配职责用以在这些变化之外创建稳定接口