Java设计模式(二)

行为类模式

策略模式( Strategy)

在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。

在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。

创建一个接口。

Strategy.java

1 public interface Strategy {
2    public int doOperation(int num1, int num2);
3 }

 

创建实现接口的实体类。

OperationAdd.java

1 public class OperationAdd implements Strategy{
2    @Override
3    public int doOperation(int num1, int num2) {
4       return num1 + num2;
5    }
6 }

创建 Context 类。

Context.java

public class Context {
   private Strategy strategy;

   public Context(Strategy strategy){
      this.strategy = strategy;
   }

   public int executeStrategy(int num1, int num2){
      return strategy.doOperation(num1, num2);
   }
}

使用 Context 来查看当它改变策略 Strategy 时的行为变化。

StrategyPatternDemo.java

1 public class StrategyPatternDemo {
2    public static void main(String[] args) {
3       Context context = new Context(new OperationAdd());        
4       System.out.println("10 + 5 = " + context.executeStrategy(10, 5));
5 }

 

模板模式(Template Method)

一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。

 

我们将创建一个定义操作的 Game 抽象类,其中,模板方法设置为 final,这样它就不会被重写。CricketFootball 是扩展了 Game 的实体类,它们重写了抽象类的方法。

TemplatePatternDemo,我们的演示类使用 Game 来演示模板模式的用法。

迭代器模式(Iterator)

 

posted @ 2018-06-16 21:17  hitszbw  阅读(337)  评论(0编辑  收藏  举报