下载 23种设计模式源码 :http://download.csdn.net/download/knight_black_bob/8936043
创建型模式,共五种:
工厂方法模式 抽象工厂模式 单例模式 建造者模式 原型模式
结构型模式,共七种:
适配器模式 装饰器模式 代理模式 外观模式 桥接模式 组合模式 享元模式
行为型模式,共十一种:
策略模式 模板方法模式 观察者模式 迭代子模式 责任链模式 命令模式
package 设计模式.命令模式;
/**
* @author baoyou E-mail:curiousby@163.com
* @version 创建时间:2015年7月8日 下午5:26:15
* 类说明:
*/
public class CarDevice {
public void conn(){
System.out.println( " 车载 接受 连接信号 ……");
}
public void heartbeat(){
System.out.println( " 车载 心跳……");
}
public void pushorders(){
System.out.println( " 车载 下载订单……");
}
public void findcar(){
System.out.println( " 车鸣笛……");
}
public void opendoor(){
System.out.println( " 车鸣笛……");
}
public void drive(){
System.out.println( " 智能开车……");
}
public void closedoor(){
System.out.println( " 关车门……");
}
}
package 设计模式.命令模式;
/**
* @author baoyou E-mail:curiousby@163.com
* @version 创建时间:2015年7月8日 下午5:21:57
* 类说明:
*/
public interface Command {
public void execute();
}
package 设计模式.命令模式;
/**
* @author baoyou E-mail:curiousby@163.com
* @version 创建时间:2015年7月8日 下午5:29:35
* 类说明:
*/
public class ConnCommand implements Command {
private CarDevice carDevice;
public CarDevice getCarDevice() {
return carDevice;
}
public void setCarDevice(CarDevice carDevice) {
this.carDevice = carDevice;
}
public ConnCommand(CarDevice carDevice) {
this.carDevice = carDevice;
}
@Override
public void execute() {
carDevice.conn();
}
}
package 设计模式.命令模式;
/**
* @author baoyou E-mail:curiousby@163.com
* @version 创建时间:2015年7月8日 下午5:29:35
* 类说明:
*/
public class OpenCommand implements Command {
private CarDevice carDevice;
public CarDevice getCarDevice() {
return carDevice;
}
public void setCarDevice(CarDevice carDevice) {
this.carDevice = carDevice;
}
public OpenCommand(CarDevice carDevice) {
this.carDevice = carDevice;
}
@Override
public void execute() {
carDevice.opendoor();
}
}
package 设计模式.命令模式;
/**
* @author baoyou E-mail:curiousby@163.com
* @version 创建时间:2015年7月8日 下午5:21:41
* 类说明:
*/
public class Receiver {
private ConnCommand connCommand;
private OpenCommand openCommand;
public ConnCommand getConnCommand() {
return connCommand;
}
public void setConnCommand(ConnCommand connCommand) {
this.connCommand = connCommand;
}
public OpenCommand getOpenCommand() {
return openCommand;
}
public void setOpenCommand(OpenCommand openCommand) {
this.openCommand = openCommand;
}
public void respose (int command){
switch (command) {
case 1:
connCommand.execute();
break;
case 2:
openCommand.execute();
break;
default:
break;
}
}
}
package 设计模式.命令模式;
/**
* @author baoyou E-mail:curiousby@163.com
* @version 创建时间:2015年7月8日 下午5:22:08
* 类说明:
*/
public class Invoker {
private CarDevice carDevice;
private ConnCommand connCommand;
private OpenCommand openCommand;
private Receiver receiver;
public Invoker(CarDevice carDevice ) {
this.carDevice = carDevice;
this.connCommand = new ConnCommand(carDevice);
this.openCommand = new OpenCommand(carDevice);
this.receiver = new Receiver();
receiver.setConnCommand(connCommand);
receiver.setOpenCommand(openCommand);
}
public void request (int command){
switch (command) {
case 1:
receiver.respose(command);
break;
case 2:
receiver.respose(command);
break;
default:
break;
}
}
}
package 设计模式.命令模式;
/**
* @author baoyou E-mail:curiousby@163.com
* @version 创建时间:2015年7月8日 下午5:04:18
* 类说明:
*/
public class CommandTest {
public static void main(String[] args) {
CarDevice carDevice = new CarDevice();
Invoker invoker = new Invoker(carDevice);
invoker.request(1);
System.out.println();
invoker.request(2);
}
}
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!