1、外觀模式的概念
外觀模式(Facade),可以理解為,為子系統(tǒng)中的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。通俗一點講,比如我們去拿閑錢理財,可能我們自己初入理財,不大懂,就會跟風入手多種產(chǎn)品:股票、國債、房地產(chǎn)等等。我們需要了解每個產(chǎn)品的情況,需要我們參與這些產(chǎn)品的具體買和賣,所以耦合性很高。而如果我們找一個理財機構,讓理財經(jīng)理替我們打理,理財經(jīng)理知道哪些產(chǎn)品賺錢,所以,我們不需要知道過程,只負責收錢就好。這個過程中,理財經(jīng)理相當于高層接口,那些投資項目相當于各個子系統(tǒng)。
2、舉例說明
三個子系統(tǒng)的類
class SubSystemOne
{
public void methodOne(){
System.out.print("子系統(tǒng)方法一") ;
}
}
class SubSystemTwo
{
public void methodTwo(){
System.out.print("子系統(tǒng)方法二") ;
}
}
class SubSystemThree
{
public void methodThree(){
System.out.print("子系統(tǒng)方法三");
}
}
外觀類
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();
}