设计模式-命令模式-java-中文版

码上见分晓!
中文版本的设计模式详解,案例中的代码尽量使用了中文.
以游戏和生活中较好理解的场景讲解设计模式的实际用法,便于理解吸收,让设计模式的学习不再困难!!!
更多设计模式欢迎来到我的开源项目设计模式中文版

https://gitee.com/nightrunner/chinese-version-of-design-patterns

/**
 * 用遥控器执行开空调,关空调命令!!!
 */
public class 命令模式主程序 {
    public static void main(String[] args) {
        空调 空调 = new 空调("格力立式空调");
        遥控器 遥控器 = new 遥控器();
        遥控器.执行命令(new(空调));
        遥控器.执行命令(new 调整温度(空调, 10));
        遥控器.执行命令(new(空调));
    }
}

interface 指令 {
    void 执行();
}

class 遥控器 {
    public void 执行命令(指令 指令) {
        指令.执行();
    }
}

class 空调 {

    private String 名称;

    public 空调(String 名称) {
        this.名称 = 名称;
    }

    public void 开启() {
        System.out.println(this + "开了");
    }

    public void 关闭() {
        System.out.println(this + "关了");
    }

    public void 设置温度(Integer 温度) {
        System.out.println(this + "设置到了" + 温度 + "度");
    }

    @Override
    public String toString() {
        return "空调{" + "名称='" + 名称 + '\'' + '}';
    }
}


abstract class 空调指令 implements 指令 {
    空调 空调;

    public 空调指令(空调 空调) {
        this.空调 = 空调;
    }

    public void 设置空调(空调 空调) {
        this.空调 = 空调;
    }
}

classextends 空调指令 {

    public(person.nightrunner.空调 空调) {
        super(空调);
    }

    @Override
    public void 执行() {
        空调.开启();
    }
}

classextends 空调指令 {


    public(空调 空调) {
        super(空调);
    }

    @Override
    public void 执行() {
        空调.关闭();
    }
}


class 调整温度 extends 空调指令 {

    public 调整温度(空调 空调, Integer 温度) {
        super(空调);
        this.温度 = 温度;
    }

    final Integer 温度;

    @Override
    public void 执行() {
        空调.设置温度(温度);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值