zoukankan      html  css  js  c++  java
  • 设计模式总结5--命令模式 commend pattern

    命令模式把发出命令的责任和执行命令
    的责任分割开,委派给不同的对象。就像我们去餐厅,点菜是找服务员,然后服务员去让厨师做菜
    而不是我们直接找厨师做菜

    public interface Commend {
        
        public void execute();
    }
    public class Remoter {
        
        public void click(Commend cmd){
            cmd.execute();
        }
    }
    public class OpenLightCommend  implements Commend{
    
        private Light light;
        
        public OpenLightCommend(Light light){
            this.light = light;
        }
        @Override
        public void execute() {
            
            light.open();
            
        }
    
    }

    测试

    public class test {
        
        public static void main(String[] args) {
            /*命令的执行者light和命令的发出者remoter是分开的,靠着OpenLightCommend
                连接*/
            Light light = new Light();
            
            OpenLightCommend olc = new OpenLightCommend(light);
            Remoter r = new Remoter();
            r.click(olc);
        }
    }

    ===================================

    ===================================

    宏命令:宏命令是命令的一种简单延伸,允许调用多个命令

    public class MarcoCommend implements Commend{
    
        private Commend[] cmds;
        public MarcoCommend(Commend... cmds){
            this.cmds = cmds;
        }
        
        @Override
        public void execute() {
            for(Commend c : cmds){
                c.execute();
            }
            
        }
    
    }
    public class test {
        
        public static void main(String[] args) {
            
            Light light = new Light();
            
            OpenLightCommend olc = new OpenLightCommend(light);
            CloseLightCommend clc = new CloseLightCommend(light);
            MarcoCommend mc = new MarcoCommend(olc,clc);
            
            
            Remoter r = new Remoter();
            r.click(mc);
        }
    }
  • 相关阅读:
    sfs2x 连接 mongodb
    java websocket
    webstorm 4.0 注册码
    解决 sfs2 admin tool 找不到扩展
    window 注册表五大类
    opengl 学习第二日
    java google Protobuf
    扩展 java sencha touch PhonegapPlugin
    sencha touch2 kryonet socket phonegap 通信 作者:围城
    sencha touch2 layout 笔记
  • 原文地址:https://www.cnblogs.com/itliucheng/p/4227070.html
Copyright © 2011-2022 走看看