A.运行时刻增加和删除产品 B.改变值以指定新对象 C.减少子类的构造 D.用类动态配置应用
A.主要有两种不同的情况 B.参数化工厂方法 C.特定语言的变化和问题 D.使用模板以避免创建子类
A.当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之,你不希望这些对象是紧密耦合的 B.许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法 C.需要使用一个算法的不同变体。例如,你可能会定义一些反映不同的空间/时间权衡的算法。当这些变体实现为一个算法的类层次时可以使用策略模式 D.算法使用客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构