使用外观模式实现教室设备的统一操作,包括上课和下课两个按钮,设备包括电脑、幕布、投影仪、话筒、黑板灯。
时间: 2024-06-09 17:05:37 浏览: 5
首先,我们需要定义一个统一的接口,用于控制教室设备的开关:
```java
public interface ClassroomEquipment {
void turnOn();
void turnOff();
}
```
然后,我们需要定义具体的设备类,实现该接口:
```java
public class Computer implements ClassroomEquipment {
public void turnOn() {
System.out.println("Computer is turned on.");
}
public void turnOff() {
System.out.println("Computer is turned off.");
}
}
public class Projector implements ClassroomEquipment {
public void turnOn() {
System.out.println("Projector is turned on.");
}
public void turnOff() {
System.out.println("Projector is turned off.");
}
}
public class Mic implements ClassroomEquipment {
public void turnOn() {
System.out.println("Mic is turned on.");
}
public void turnOff() {
System.out.println("Mic is turned off.");
}
}
public class BlackboardLight implements ClassroomEquipment {
public void turnOn() {
System.out.println("Blackboard light is turned on.");
}
public void turnOff() {
System.out.println("Blackboard light is turned off.");
}
}
public class Screen implements ClassroomEquipment {
public void turnOn() {
System.out.println("Screen is turned on.");
}
public void turnOff() {
System.out.println("Screen is turned off.");
}
}
```
接下来,我们需要定义一个外观类,封装这些设备的操作:
```java
public class ClassroomFacade {
private Computer computer;
private Projector projector;
private Mic mic;
private BlackboardLight blackboardLight;
private Screen screen;
public ClassroomFacade() {
computer = new Computer();
projector = new Projector();
mic = new Mic();
blackboardLight = new BlackboardLight();
screen = new Screen();
}
public void startClass() {
computer.turnOn();
projector.turnOn();
mic.turnOn();
blackboardLight.turnOn();
screen.turnOn();
}
public void endClass() {
computer.turnOff();
projector.turnOff();
mic.turnOff();
blackboardLight.turnOff();
screen.turnOff();
}
}
```
最后,我们可以在客户端中使用外观类来控制设备的开关:
```java
public class Client {
public static void main(String[] args) {
ClassroomFacade facade = new ClassroomFacade();
facade.startClass();
// 上课中...
facade.endClass();
}
}
```
通过外观类的封装,我们可以方便地控制教室设备的开关,而不需要直接操作每个设备。这种设计模式可以简化代码,提高代码的可维护性和可读性。
相关推荐
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)