设计模式

设计模式之命令模式-引导篇及原理

设计模式之命令模式-引导篇及原理引导司小司又接到了新项目:家电自动化遥控器API项目。项目背景:随着物联网的流行以及智能化家具普及。一个遥控器可以管控家里所有设备(家电等)也很正常了。如上图:假设空心的是关,实心的是开。需求:1:给出各个家电(电灯、电视、音响等)的API,需要在这个遥控器接口中,对接这些API来实现对不同家电的控制。2:要求自动化遥控器要扩展性好、维护性好。第一版设计:面向对象的


设计模式之命令模式-引导篇及原理

引导

司小司又接到了新项目:家电自动化遥控器API项目。

项目背景:随着物联网的流行以及智能化家具普及。一个遥控器可以管控家里所有设备(家电等)也很正常了。

来源:凯哥Java(kaigejava)

如上图:假设空心的是关,实心的是开。

需求:

1:给出各个家电(电灯、电视、音响等)的API,需要在这个遥控器接口中,对接这些API来实现对不同家电的控制。

2:要求自动化遥控器要扩展性好、维护性好。

第一版设计:面向对象的传统思维

说明:0代表电灯对象,1打开音响的音量命令 2:音响音量命令

我们来看看传统OO思维下项目结构:

说明:

1:电灯和音响SDK相关的API

2:传统OO思维下的遥控器

3:遥控器接口

4:测试类

电灯SDKAPI

public class LightAPI {

/**

* 电灯所在位置

*/

private String location = "";

public LightAPI (String location){

this.location = location;

}

/**

* 开灯效果

*/

public void On{

System.out.println(location +"的灯打开");

}

/**

* 关灯

*/

public void Off{

System.out.println(location+"的灯关了");

}

}

遥控器接口:

public interface Control {

public void onButton(int slot);

public void offButton(int slot);

public void undoButton;

}

传统oo对象实现了遥控器接口:

/**

* Created by kaigejava on 2019/8/28.

* 传统面向对象的遥控

原创不易,完成人机校验,阅读全文

相关推荐