CommandDemo.java
package com.csdn.cmmmand;
/**
* 命令模式:使发命令者与命令执行者解耦
* 角色:
* 抽象命令
* 具体命令
* 命令发送者
* 命令执行者
*
* 以下例子为:程序员向数据库发查询的sql命令
* @author Administrator
*
*/
//抽象命令
interface Command {
public void execute();
}
//具体命令
class SqlCommand implements Command {
Db db;
public SqlCommand(Db db) {
this.db=db;
}
@Override
public void execute() {
db.query();
}
}
//命令发送者
class Developer {
Command command;
public void setCommand(Command command) {
this.command = command;
}
public void write() {
command.execute();
}
}
//命令执行者
class Db {
public void query() {
System.out.println("查询出来了");
}
}
public class CommandDemo {
public static void main(String[] args) {
Developer dep = new Developer();
Command command = new SqlCommand(new Db());
dep.setCommand(command);
dep.write();
}
}