外觀模式
為子系統中的一組接口提供一個一致的界面,Facade模式定義了一個高層接口,這個接口使得這一子系統更加容易使用
外觀模式的組成部份:
1.子系統
2.外觀類 包含每個子系統的類,并提供一個方法,按業務邏輯依次訪問子系統里的方法,使之組成一個有機體
例子:
讀文件:
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();
}
}

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










解析文件:










存文件:










外觀類:




























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