外观模式又名门面模式html
// 子系统,包含A、B、C三个模块
public class ModuleA {
public void a() {
System.out.println("a");
}
}
class ModuleB {
public void b() {
System.out.println("b");
}
}
class ModuleC {
public void c() {
System.out.println("c");
}
}
// Facade
public class Facade {
private ModuleA a;
private ModuleB b;
private ModuleC c;
public Facade() {
a = new ModuleA();
b = new ModuleB();
c = new ModuleC();
}
public void test() {
a.a();
b.b();
c.c();
}
}
// 客户端
public class Client {
public static void main(String[] args) throws Exception {
Facade facade = new Facade();
facade.test();
}
}
经过外观模式松散了客户端与子系统的耦合关系,让子系统内部的模块能更容易扩展和维护java
java.util.loggingweb
经过外观模式,使客户端仅经过下面简单的代码便可实现日志输出,为客户端提供了简单、统一的接口,下降了耦合性spa
Logger log = Logger.getLogger("log");
log.info("message");