如何应用外观模式实现家庭影院的开关播放等功能 点击复制后,将打开C知道体验页
时间: 2024-06-11 16:08:53 浏览: 57
外观模式可以将复杂的子系统封装成一个简单的接口,从而方便客户端使用。在家庭影院中,可以将各个设备(如电视、DVD播放器、音响等)封装成一个家庭影院外观类,提供开关、播放等功能。具体实现如下:
1. 定义各个设备的接口及实现类,如电视接口及实现类、DVD播放器接口及实现类、音响接口及实现类等。
2. 定义家庭影院外观类,该类包含各个设备的实例,提供开、关、播放等操作方法。具体实现如下:
```java
public class HomeTheaterFacade {
private TV tv;
private DVDPlayer dvdPlayer;
private Audio audio;
public HomeTheaterFacade() {
tv = new TVImpl();
dvdPlayer = new DVDPlayerImpl();
audio = new AudioImpl();
}
public void watchMovie() {
System.out.println("Get ready to watch a movie...");
tv.turnOn();
dvdPlayer.turnOn();
audio.turnOn();
dvdPlayer.play();
}
public void endMovie() {
System.out.println("Shutting movie theater down...");
dvdPlayer.stop();
dvdPlayer.eject();
dvdPlayer.turnOff();
audio.turnOff();
tv.turnOff();
}
}
```
3. 在客户端中,使用家庭影院外观类来实现开、关、播放等操作。具体实现如下:
```java
public class Client {
public static void main(String[] args) {
HomeTheaterFacade homeTheaterFacade = new HomeTheaterFacade();
homeTheaterFacade.watchMovie();
// do something else
homeTheaterFacade.endMovie();
}
}
```
通过使用外观模式,客户端只需要调用家庭影院外观类的方法即可完成复杂的操作,而不需要了解各个设备的具体实现。同时,如果需要修改设备的实现,只需要修改相应的实现类即可,不会影响到客户端的代码。