策略模式
策略模式是什么
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
策略模式的组成有哪些?
- 抽象策略角色: 策略类,通常由一个接口或者抽象类实现。
- 具体策略角色:包装了相关的算法和行为。
- 环境角色:持有一个策略类的引用,最终给客户端调用。
策略模式与工厂模式的不同之处?
- 用途不一样:
工厂是创建型模式,它的作用就是创建对象;
策略是行为型模式,它的作用是让一个对象在许多行为中选择一种行为;- 关注点不一样:
一个关注对象创建
一个关注行为的封装
一句话总结
策略模式与简单工厂模式结构类似,但作用不同:工厂模式用来创建对象,策略模式可以表示可替换的算法等。