1、外观模式的概念
外观模式(Facade),可以理解为,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。通俗一点讲,比如我们去拿闲钱理财,可能我们自己初入理财,不大懂,就会跟风入手多种产品:股票、国债、房地产等等。我们需要了解每个产品的情况,需要我们参与这些产品的具体买和卖,所以耦合性很高。而如果我们找一个理财机构,让理财经理替我们打理,理财经理知道哪些产品赚钱,所以,我们不需要知道过程,只负责收钱就好。这个过程中,理财经理相当于高层接口,那些投资项目相当于各个子系统。
2、举例说明
三个子系统的类
class SubSystemOne
{
public void methodOne(){
System.out.print("子系统方法一") ;
}
}
class SubSystemTwo
{
public void methodTwo(){
System.out.print("子系统方法二") ;
}
}
class SubSystemThree
{
public void methodThree(){
System.out.print("子系统方法三");
}
}
外观类
class Facade
{
SubSystemOne one;
SubSystemTwo two;
SubSystemThree three;
public Facade(){
one = new SubSystemOne();
two = new SubSystemTwo();
three = new SubSystemThree();
}
public void methodA(){
System.out.print("方法组 A ") ;
one. methodOne();
two. methodTwo();
three. methodThree();
}
public void methodB(){
System.out.print("方法组 B ") ;
one. methodOne();
two. methodTwo();
}
public void methodC(){
System.out.print("方法组 C ") ;
two. methodTwo();
three. methodThree();
}
}
调用代码
public void main(String[] args)
{
Facade f = new Facade();
f.methodA();
f.methodC();
}