• 设计模式总结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);
        }
    }
  • 相关阅读:
    PAT-乙级-1011. A+B和C (15)
    PAT-乙级-1010. 一元多项式求导 (25)
    PAT-乙级-1009. *说反话 (20)
    PAT-乙级-1008. 数组元素循环右移问题 (20)
    PAT-乙级-1007. 素数对猜想 (20)
    PAT-乙级-1006. 换个格式输出整数 (15)
    PAT-乙级-1005. 继续(3n+1)猜想 (25)
    PAT-乙级-1004. 成绩排名 (20)
    BZOJ 1030: [JSOI2007]文本生成器
    BZOJ 2938: [Poi2000]病毒
  • 原文地址:https://www.cnblogs.com/itliucheng/p/4227070.html
Copyright © 2020-2023  润新知