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

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


设计模式--策略模式详述_第1张图片
image.png
调用的代码为
  Context context = new  Context();
  AbstractStrategy   abstractStrategy;
  abstractStrategy = new ConcreteStrategyA();
  context.setStrategy(abstractStrategy);
  context.algorithm();

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

你可能感兴趣的:(设计模式--策略模式详述)