定义:定义一系列算法,将他们封装起来,并使他们可以相互替换。
场景:
- 许多相关的类仅仅是行为有异
- 需要使用同一个算法的不同变体
- 算法使用主体不应该知道的数据
- 一个类定义了多种行为,并且这些行为在这个类的操作中以多个条件语句的形式出现
类图:

优点:
- 使得算法可重用
- 使用组合代替继承,易于拓展
- 消除了大量的条件语句
- 同一个算法可以有不同的实现
缺点:
- 主体必须了解不同的算法
- 不同的算法可能需要不同的参数,但是主体和算法之间的通信是固定不变的
- 可能引入大量的算法实现类
定义:定义一系列算法,将他们封装起来,并使他们可以相互替换。
场景:
类图:

优点:
缺点:

被折叠的 条评论
为什么被折叠?