Design Pattern:
Command pattern is a data driven design pattern and falls under behavioral pattern category 模式:命令模式是一种数据驱动的设计模式,属于行为模式范畴
现在有一个球Basketball,现在勇士准备打球Play,训练的方式有很多种,库里可以投球Shoot,杜兰特可以扣篮Dunk 教练拿着训练册命令他们一一表演,结果看最后截图

打球 具体可分为投球,扣篮等
public interface Play {
void execute();
}
//库里拿球投3分
public class Shoot implements Play{
private Basketball basketball;
public Shoot(Basketball basketball) {
this.basketball = basketball;
}
@Override
public void execute() {
basketball.shoot();
}
}
//杜兰特拿球扣篮
public class Dunk implements Play {
private Basketball basketball;
public Dunk(Basketball basketball) {
this.basketball = basketball;
}
@Override
public void execute() {
basketball.dunk();
}
}
训练册记录着他们要执行的动作
public class PlayList {
private List<Play> playList = new ArrayList<>();
public void addPlay(Play play){
playList.add(play);
}
public void action(){
for (Play play:playList){
play.execute();
}
}
}
训练开始了 有一个篮球,库里会拿着这个球投篮,杜兰特会拿这个球扣篮,教练一声令下,请开始你的表演。
public class CommandDemo {
public static void main(String[] args) {
Basketball basketball = new Basketball();
Play shoot = new Shoot(basketball);
Play dunk = new Dunk(basketball);
PlayList playList = new PlayList();
playList.addPlay(shoot);
playList.addPlay(dunk);
playList.action();
}
}
结果
