zoukankan      html  css  js  c++  java
  • 设计模式—命令模式

    命令模式将请求封装到一个对象当中,命令模式是对命令的封装。

    命令模式把发出命令的责任和执行命令的责任分割开,A负责发出命令,B负责接收命令并执行。

    以一个女孩命令男孩做事情为例:

    1.命令接口

    package com.bjsxt.dp.command;
    
    public abstract class Command {
        public abstract void execute();
        public abstract void unDo();
    }

    2.具体命令

    package com.bjsxt.dp.command;
    
    public class HugCommand extends Command {
    
        @Override
        public void execute() {
            System.out.println("hug");
        }
    
        @Override
        public void unDo() {
            System.out.println("open your arms");
        }
    
    }

    3.具体命令

    package com.bjsxt.dp.command;
    
    public class ShoppingCommand extends Command {
    
        @Override
        public void execute() {
            System.out.println("zoo");
        }
    
        @Override
        public void unDo() {
            System.out.println("undo zoo");
        }
    
    }

    4.女孩下命令

    package com.bjsxt.dp.command;
    
    public class MM {
    
        public void order(Boy b) {
            Command c1 = new ShoppingCommand();
            b.addCommand(c1);
            Command c2 = new HugCommand();
            b.addCommand(c2);
            b.executeCommands();
        }
    }

    5.男孩执行命令

    package com.bjsxt.dp.command;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Boy {
        private List<Command> commands = new ArrayList<Command>();
    
        public void addCommand(Command c1) {
            this.commands.add(c1);
        }
    
        public void executeCommands() {
            for(Command c : commands) {
                c.execute();
            }
        }
        
        public void undoCommands() {
            //
        }
        
    }
  • 相关阅读:
    [转载] 论C#与Java之异同
    MultiThread WebRequest : Timeout
    FCL(2) :: CollectionBase & Collection
    msn 81000306 无法登录,解决方法
    接口一个被我忽略的地方接口重定向技术
    <<Clr Via C#>> Key Points (1) (46章)
    FCL(3):: ArrayList & List (1)
    TCP保活机制
    子网划分
    freopen函数
  • 原文地址:https://www.cnblogs.com/xiangkejin/p/6875805.html
Copyright © 2011-2022 走看看