目的解耦指令调用者,指令执行者。靠中间人,指令这个对象。指令解耦内涵就是成员变量。层层成员变量,就是剔除隔一层的关系。jdk中并发包线程池,把runnable定义为命令,真正的执行者是实现runnable这个接口的类。说明不执着于教条。在于思想。说法。下面例子就一五一十说模式。完全匹配。
一个命令一个类,麻烦。
public class TV{
public void on(){
System.out.println("TV on ");
}
public void off(){
System.out.println("TV off ");
}
}
public class OnCommond{
private TV tv;
public OnCommond(TV tv){
this.tv = tv;
}
public void OnAction(){
tv.on();
}
}
public class OffCommond{
private TV tv;
public OffCommond(TV tv){
this.tv = tv;
}
public void OffAction(){
tv.off();
}
}
public class Controller{
public OnCommond onCommond;
public OffCommond offCommond;
public Controller(OnCommond onCommond,OffCommond offCommond){
this.onCommond = onCommond;
this.offCommond = offCommond;
}
public void onAction(){
this.onCommond.OnAction();
}
public void offAction(){
this.offCommond.OffAction();
}
}