命令模式

我会用一个非常的简单的例子来告诉大家,什么是命令模式

Point 是一个对象 有两个属性 x,y  提供一个方法translate(x,y)

公共的接口对象,用来配置不同的命令

public interface PointAction{
   void doForPoint(Point p);
}

一下是两种命令

class TranActionOne implements PointAction{
   punlic void doForPoint(Point p){
          p.translate(1,5);
   }
}

class TranActionTwo implements PointAction{
   punlic void doForPoint(Point p){
          p.translate(1,6);
   }
}

命令执行器

public class PointArrayList extends ArrayList<Point>{
    public void forEach(PointAction paction){
      for(Point p:: this){
           paction.doForPoint(p);
      }
    }
}

执行 不同的命令 

pointList.forEach(newTranActionOne() );

pointList.forEach(newTranActionTwo() );

 

posted @ 2015-12-08 14:34  神码都在云端  阅读(83)  评论(0)    收藏  举报