概述

Strategy Pattern,即策略模式。它能让你定义一系列算法,并将每种算法分别放入独立的类中,以使算法的对象可以相互替换。属于行为型设计模式。

避免使用多重分支的if else、switch语句。

Design Pattern - Strategy Pattern

适用场景

Design Pattern - Strategy Pattern

假如系统中有许多类,而它们的区别仅仅在于它们行为的不同。

Design Pattern - Strategy Pattern

一个系统需要动态地在几种算法中选择一个。

Design Pattern - Strategy Pattern

需要屏蔽算法的规则。

Design Pattern - Strategy Pattern

概念结构图

Design Pattern - Strategy Pattern

样例

样例1

算法接口:
Design Pattern - Strategy Pattern

具体的算法1
Design Pattern - Strategy Pattern

具体的算法2
Design Pattern - Strategy Pattern

上下文 -(持有算法实例)
Design Pattern - Strategy Pattern

客户端
Design Pattern - Strategy Pattern

样例2

使用枚举封装算法。
Design Pattern - Strategy Pattern

样例3

算法接口
Design Pattern - Strategy Pattern

具体的算法1
Design Pattern - Strategy Pattern

具体的算法2
Design Pattern - Strategy Pattern

具体的算法3
Design Pattern - Strategy Pattern

算法工厂
Design Pattern - Strategy Pattern

客户端
Design Pattern - Strategy Pattern

优缺点

Design Pattern - Strategy Pattern

相关文章: