外观模式
一般来说系统之间的关联都是比较复杂的,如何管理这些关系呢,这时候就需要外观模式的协调,使客户端调用复杂的子系统变得简单,可以说外观模式是一种控制器,客户端想要用哪个功能只要熟悉外观对象提供的方法即可
IUser.java
public interface IUser {
void WhoAreYou();
}
A.java
public class A implements IUser {
@Override
public void WhoAreYou() {
System.out.println("I'm A");
}
}
B.java
public class B implements IUser {
@Override
public void WhoAreYou() {
System.out.println("I'm B");
}
}
Facade.java
public class Facade {
private A a;
private B b;
public Facade(){
this.a = new A();
this.b = new B();
}
public void showA(){
a.WhoAreYou();
}
public void showB(){
b.WhoAreYou();
}
}
TestFacade.java
public class TestFacade {
public static void main(String[] args) {
Facade facade = new Facade();
facade.showA();
facade.showB();
}
}
Run result
I'm A
I'm B
这种做法能够减少系统之间的依赖,客户端只能先通过外观对象访问系统提高了安全性,但是这种结构型模式不符合开闭原则,即添加新的子系统时需要修比较麻烦