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() {
            //
        }
        
    }
  • 相关阅读:
    How Default Heap Of Process Grows
    希腊字母表
    Ubuntu第一次亲密接触
    Ubuntu中的挂载点(mount point)
    要一专多能
    First touch with JIT debugging
    小学一下环境变量
    安装VMware Tools
    [转]ReiserFS与ext3的比较
    [bbk4485]第二章Flashback Database 05
  • 原文地址:https://www.cnblogs.com/xiangkejin/p/6875805.html
Copyright © 2011-2022 走看看