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() {
            //
        }
        
    }
  • 相关阅读:
    mysql外键(FOREIGNKEY)使用介绍
    MYSQL数据库-约束
    mysql探究之null与not null
    爬虫
    http://blog.csdn.net/w_e_i_/article/details/70766035
    Python 3.5安装 pymysql 模块
    Python 3.5 连接Mysql数据库(pymysql 方式)
    hdu Bone Collector
    hdu City Game
    hdu Largest Rectangle in a Histogram
  • 原文地址:https://www.cnblogs.com/xiangkejin/p/6875805.html
Copyright © 2011-2022 走看看