外观模式
今天我们讲解的是23种设计模式中的第十种——外观模式。外观模式主要通过向现有的系统添加一个接口,来隐藏系统的复杂性。
概念:
外观模式是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。
特点:
优点:
-
降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类。
-
对客户屏蔽了子系统组件,减少了客户处理的对象数目,并使得子系统使用起来更加容易。
-
降低了大型软件系统中的编译依赖性,简化了系统在不同平台之间的移植过程,因为编译一个子系统不会影响其他的子系统,也不会影响外观对象。
缺点:
- 增加新的子系统可能需要修改外观类或客户端的源代码,违背了“开闭原则”。
类图分析:
代码:
影院灯光
package cn.ppdxzz.facade;
/**
* Description:影院灯光
* @Author: PeiChen JavaAnything
*/
public class TheaterLight {
private static final TheaterLight INSTANCE = new TheaterLight();
public static TheaterLight getInstance() {
return INSTANCE;
}
public void on() {
System.out.println("灯光开启");
}
public void off() {
System.out.println("灯光关闭");
}
public void dim() {
System.out