设计模式--策略模式详述

2019-05-23  本文已影响0人  进击的三文鱼

最近看一本设计模式的书,其中讲述了策略模式的使用,我发现策略模式和简单工厂模式十分类似,都是要有一个抽象类然后被继承,不同的是简单工厂模式通过工厂类决定,实例化哪个对象,属于创建型的设计模式,而策略模式属于行为型设计模式,结果并非是创建一个对象而是实现一个行为。
下面是我画的策略模式的UML类图


image.png
调用的代码为
  Context context = new  Context();
  AbstractStrategy   abstractStrategy;
  abstractStrategy = new ConcreteStrategyA();
  context.setStrategy(abstractStrategy);
  context.algorithm();

Context 类先保留了AbstractStrategy 类的引用,然后根据实现不同的行为,传入不同的对象,然后调用algorithm方法,根据不同的对象来实现不同的行为。
与简单工厂模式比有一个好处就是,如果要实现新的行为,不需要更改Context 类,而工厂方法模式是需要更改工厂类的。

上一篇 下一篇

猜你喜欢

热点阅读