外觀模式
為子系統(tǒng)中的一組接口提供一個一致的界面,Facade模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用
外觀模式的組成部份:
1.子系統(tǒng)
2.外觀類 包含每個子系統(tǒng)的類,并提供一個方法,按業(yè)務(wù)邏輯依次訪問子系統(tǒng)里的方法,使之組成一個有機(jī)體
例子:
讀文件:
package facade;

public class ReadFile
{
public void readFile()
{
System.out.println("讀文件");
}
}

解析文件:
package facade;

public class ParseFile
{
public void parse()
{
System.out.println("解析文件");
}
}

存文件:
package facade;

public class SaveFile
{
public void saveFile()
{
System.out.println("保存文件");
}
}

外觀類:
package facade;

public class Facade
{
// 解析文件
private ParseFile parseFile;
// 讀文件
private ReadFile readFile;
// 保存文件
private SaveFile saveFile;
public Facade()
{
parseFile = new ParseFile();
readFile = new ReadFile();
saveFile = new SaveFile();
}
public void oparatFile()
{
this.readFile.readFile();
this.parseFile.parse();
this.saveFile.saveFile();
}
}

外觀模式的優(yōu)點(diǎn):
為子系統(tǒng)中的一組接口提供一個一致的界面,Facade模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用
外觀模式的組成部份:
1.子系統(tǒng)
2.外觀類 包含每個子系統(tǒng)的類,并提供一個方法,按業(yè)務(wù)邏輯依次訪問子系統(tǒng)里的方法,使之組成一個有機(jī)體
例子:
讀文件:










解析文件:










存文件:










外觀類:




























外觀模式的優(yōu)點(diǎn):
正如上看到的說:客戶端代碼(Program)不需要關(guān)心子系統(tǒng),它只需要關(guān)心CarFacade所留下來的和外部交互的接口,而子系統(tǒng)是在CarFacade中聚合。
Façade模式的幾個要點(diǎn):
1、從客戶程序的角度看,F(xiàn)acade模式不僅簡化了整個組件系統(tǒng)的接口,同時對于組件內(nèi)部與外部客戶程序來說,從某種程度上也達(dá)到了一種“解耦”的效果——內(nèi)部子系統(tǒng)的任何變化不會影響到Facade接口的變化。
2、Facade設(shè)計模式更注重從架構(gòu)的層次去看整個系統(tǒng),而不是單個類的層次。Facade很多時候更是一種架構(gòu)設(shè)計模式。