设计23式—命令
来源:互联网 发布:市场份额数据优缺点 编辑:程序博客网 时间:2024/06/15 06:14
/* * 命令模式 * 优点 * 类间解耦,调用者角色与接收者角色之间没有任何依赖关系 * 可扩展性,Command的子类可以非常容易地扩展 * 缺点 * 命令越多,Command类越膨胀(可通过模板方法模式降低) */public class MyMain {public static void main(String[] args) {// 实例一个具体的传令官Invoker invoker = new Invoker();System.out.println("将军要求炮兵攻击,空军攻击");// 实例C号将军命令Command command = new CommandC();// 传令官接受命令invoker.setCommand(command);// 执行命令invoker.action();}}// 抽象的军队类(接收者:干活的)abstract class Army {// 抽象的攻击方法abstract public void attack();// 抽象的撤退方法abstract public void retreat();}// 具体的炮兵军队class Artillery extends Army {@Overridepublic void attack() {System.out.println("炮兵军队开始攻击");}@Overridepublic void retreat() {System.out.println("炮兵军队开始撤退");}}// 具体的空军军队class AirForce extends Army {@Overridepublic void attack() {System.out.println("空军军队开始攻击");}@Overridepublic void retreat() {System.out.println("空军军队开始撤退");}}// 抽象的将军命令(命令:需要执行的所有命令)abstract class Command {// 炮兵部队Artillery artillery = new Artillery();// 空军部队AirForce airForce = new AirForce();// 命令执行方式abstract public void execute();}// 具体的A号将军命令(炮兵攻击,空军撤退)class CommandA extends Command {public CommandA() {System.out.println("生成A号命令:炮兵攻击,空军撤退");}@Overridepublic void execute() {artillery.attack();airForce.retreat();}}// 具体的B号将军命令(空军攻击,炮兵撤退)class CommandB extends Command {public CommandB() {System.out.println("生成B号命令:空军攻击,炮兵撤退");}@Overridepublic void execute() {airForce.attack();artillery.retreat();}}// 具体的C号将军命令(空军攻击,炮兵攻击)class CommandC extends Command {public CommandC() {System.out.println("生成C号命令:空军攻击,炮兵攻击");}@Overridepublic void execute() {airForce.attack();artillery.attack();}}// 传令官(调用者:接收到命令,并执行命令)class Invoker {private Command command = null;// 接受命令public void setCommand(Command command) {System.out.println("传令官接受命令");this.command = command;}// 执行命令public void action() {System.out.println("传令官执行命令");command.execute();}}
阅读全文
0 0
- 设计23式—命令
- 设计模式——命令设计模式
- 设计模式—命令模式
- 设计模式—命令模式
- 设计模式—命令模式
- 设计模式—命令模式
- 23种设计模式之命令模式
- 23种设计模式-10-命令模式
- 23种设计模式-21-命令模式
- 23种设计模式之命令模式
- 设计模式(23) - 命令模式
- 23设计模式之命令模式(Command)
- 23设计模式之命令模式(Command)
- 设计模式23篇:命令者模式
- 大话设计模式23----命令模式
- 23种设计模式之命令模式
- 23种设计模式-命令模式
- 23种设计模式(18)-命令模式
- python3 sort sorted 函数应用
- 利用小游戏学习多线程之飞机躲子弹
- java中获取当前类名,方法名
- ojdbc.jar不同oracle版本下载地址
- 消息队列-ActiveMQ学习笔记(一)-JMS介绍与环境搭建
- 设计23式—命令
- 类和对象的关系
- Git如何进行分支管理?
- java虚拟机、垃圾回收、多线程
- Deep Learning回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet
- C++默认构造器
- Centos 6.5 smb配置
- main入口方法中创建线程执行顺序的问题
- jdk_1.8.sh