门面模式的一个典型应用:socket 接口
socket 与传输层的TCP、UDP协议,网络层IP、ICMP协议交互,试想如果没有socket这层,我们那不是要与TCP、UDP、IP、ICMP协议打交道,
为了隐藏后面的协议的复杂,产生了socket。
门面模式是客户端通过访问门面这个接口而不需要访问具体的子系统而可以使得子系统更好使用。
下面是一个门面模式应用的列子:
public static void main(String[] args) {
//正常调用
A a = new A();
a.test();
B b = new B();
b.test(); //......
//上述带来的问题是调用者需要去了解所有的子系统
//门面模式
Fade fade =new Fade();
fade.testA();
fade.testB();
fade.testC();
//通过门面模式避免了客户端去了解各个子系统
}
}
class Fade {
public void testA() {
A a = new A();
a.test();
}
public void testB() {
B b = new B();
b.test();
}
public void testC() {
C c = new C();
c.test();
}
}
class A {
public void test() { System.out.println("访问a"); } }
class B {
public void test() { System.out.println("访问b"); } }
class C {
public void test() { System.out.println("访问c"); } }