设计模式应用场景
当对象之间的关系特别复杂时,完成一个业务势必要访问多个对象,那么我们可以定制一个门面来管理这些关系,使得业务简单化
实现方式
为子系统中的一组接口提供一个一致的门面,门面模式定义一个高层接口,这个接口使得这一子系统更加容易使用。
代码示例:
1.我们先设计三个简单的类和方法
class A {
public void a1(){
System.out.println("a1");
}
public void a2(){
System.out.println("a2");
}
public void a3(){
System.out.println("a3");
}
}
class B {
public void b1(){
System.out.println("b1");
}
public void b2(){
System.out.println("b2");
}
public void b3(){
System.out.println("b3");
}
}
class C {
public void c1(){
System.out.println("c1");
}
public void c2(){
System.out.println("c2");
}
public void c3(){
System.out.println("c3");
}
}
2.创建一个门面,管理维护这三个类之间的关系
class Facade {
private A a;
private B b;
private C c;
public Facade() {
this.a = new A();
this.b = new B();
this.c = new C();
}
public void f1(){
a.a1();
a.a3();
c.c1();
b.b2();
}
public void f2(){
a.a2();
a.a1();
b.b1();
b.b3();
}
public void f3(){
f1();
f2();
}
}
测试一下
public static void main(String[] args) {
Facade facade = new Facade();
facade.f3();
}
结果
这样一来,我们就可以通过这个门面,完成一连串要使用到不同对象的操作,而不用直接与对象进行交互