Command命令模式: Command模式通过被称为Command的类封装了对目标对象的调用行为以及调用参数。将一个请求封装为一个对象,从而使你不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
在此写了7个java类来描述说明Command设计模式的实现方式;
1、 Control.java 命令控制者对象类 (命令控制器在这里至关重要,相当于遥控器的作用)
2、 Tv.java 命令接收者对象类
3、 Command.java 命令接口类
4、 CommandChannel.java 频道切换命令类
5、 CommandOff.java 关机命令类
6、 CommandOn.java 开机命令类
7、 CommandTest.java 带有main方法的测试类(命令发送者)
如下所示:
package lucene.kameilong.conmmand;
public class TV {
private int currentChanl = 0;
public void trunOn() {
System.out.println("TV is turnning on......");
}
public void trunOff() {
System.out.println("TV is turnning off......");
}
public void changeChanl(int chanl) {
this.currentChanl = chanl;
System.out.println("Now TV chanle is " + currentChanl + "......");
}
}
package lucene.kameilong.conmmand;
public class OnCommand implements Command {
private TV myTv;
public OnCommand(TV tv) {
this.myTv = tv;
}
public void excute() {
myTv.trunOn();
}
}
package lucene.kameilong.conmmand;
public interface Command {
public void excute();
}
package lucene.kameilong.conmmand;
public class CommandTest {
public static void main(String[] args) {
TV myTv = new TV();
OnCommand on = new OnCommand(myTv);
OffCommand off = new OffCommand(myTv);
ChangeCommand change = new ChangeCommand(myTv, 3);
Control control = new Control(on, off, change);
control.turnOn();
control.chageChanl();
control.turnOff();
}
}
package lucene.kameilong.conmmand;
public class OffCommand implements Command {
private TV myTv;
public OffCommand(TV tv) {
this.myTv = tv;
}
public void excute() {
myTv.trunOff();
}
}
package lucene.kameilong.conmmand;
public class ChangeCommand implements Command {
private TV myTv;
private int chanl;
public ChangeCommand(TV tv, int chanl) {
this.myTv = tv;
this.chanl = chanl;
}
public void excute() {
myTv.changeChanl(chanl);
}
}
package lucene.kameilong.conmmand;
public class Control {
private Command on, off, change;
public Control(OnCommand on, OffCommand off, ChangeCommand change) {
this.on = on;
this.off = off;
this.change = change;
}
public void turnOn() {
on.excute();
}
public void turnOff() {
off.excute();
}
public void chageChanl() {
change.excute();
}
}
分享到:
相关推荐
目录: 前 言 第一部分 大旗不挥,谁敢冲锋——热身篇 第1章 单一职责原则 1.1 我是“牛”类,我可以担任多职吗 1.2 绝杀技,打破你的传统思维 1.3 我单纯,所以我快乐 1.4 最佳实践 ...附录:23个设计模式
设计模式--命令模式java例子
java设计模式之命令模式,通过实际生活例子说明命令模式的原理
设计模式主要分为三大类: 1.创建型模式:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式。 2.结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 4.行为型模式:...
这是JAVA设计模式中属于行为模式的部分,包括Template(模板模式)、Chain of Responsibility(责任链模式)、Memento(纪念品模式)、Mediator(中介模式)、Strategy(策略模式)、State 、Observer(观察者模式)、Visitor...
本系统基于六种设计模式,运用到的设计模式有备忘录模式,简单工厂模式,迭代器模式,状态模式,模版方法模式,单例模式。 具体实现过程、UML类图以及实现效果详见如下项目说明地址: ... 该系统为绘图系统,该系统通过...
Java设计模式之命令模式/Java函数式编程 笔记
java常用设计模式-命令模式
Java设计模式课件命令模式.pptx
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段...
总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元...
设计模式 java 命令模式
命令模式(Command Pattern) 解释器模式(Interpreter Pattern) 迭代器模式(Iterator Pattern) 中介者模式(Mediator Pattern) 备忘录模式(Memento Pattern) 观察者模式(Observer Pattern) 状态模式(State...
命令模式.rar命令模式.rar之java设计模式
java设计模式示例 创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。 行为型...
72-Java设计模式 命令模式1
设计模式这命令模式的Java实现版本和UML设计类图
Java设计模式,目录:前言,UML建模技术,深入浅出UML类图,从招式与内功谈起——设计模式概述,面向对象设计原则,工厂三兄弟之简单工厂模式,工厂三兄弟之工厂方法模式,工厂三兄弟之抽象工厂模式,确保对象的唯一...
Java 23种设计模式18命令模式 .pdf
《java设计模式(第2版)》通过一个完整的java项目对经典著作design patterns一书介绍的23种设计模式进行了深入分析与讲解,实践性强,却又不失对模式本质的探讨。本书创造性地将这些模式分为5大类别,以充分展现各个...