1,定義
外觀模式:為子系統(tǒng)的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用
2,UML圖
外觀模式
3,基本代碼
namespace 外觀模式
{
class Program
{
static void Main(string[] args)
{
Facade facade = new Facade();
facade.MethodA();
facade.MethodB();
Console.Read();
}
}
class SubSystemOne
{
public void MethodOne()
{
Console.WriteLine(" 子系統(tǒng)方法一");
}
}
class SubSystemTwo
{
public void MethodTwo()
{
Console.WriteLine(" 子系統(tǒng)方法二");
}
}
class SubSystemThree
{
public void MethodThree()
{
Console.WriteLine(" 子系統(tǒng)方法三");
}
}
class SubSystemFour
{
public void MethodFour()
{
Console.WriteLine(" 子系統(tǒng)方法四");
}
}
class Facade
{
SubSystemOne one;
SubSystemTwo two;
SubSystemThree three;
SubSystemFour four;
public Facade()
{
one = new SubSystemOne();
two = new SubSystemTwo();
three = new SubSystemThree();
four = new SubSystemFour();
}
public void MethodA()
{
Console.WriteLine("\n方法組A() ---- ");
one.MethodOne();
two.MethodTwo();
four.MethodFour();
}
public void MethodB()
{
Console.WriteLine("\n方法組B() ---- ");
two.MethodTwo();
three.MethodThree();
}
}
}
4,簡單應用
5,思考
1,注意子類中沒有Facade的任何引用。
2,在設計的初期階段,應該有意識的將不同的層分離,層與層之間建立facade
3,在開發(fā)階段,子系統(tǒng)往往因為不斷的重構演化而變得越來越復雜,添加外觀facade可以提供一個簡單的接口,減少他們之間的依賴,
4,為新系統(tǒng)提供一個外觀facade類,來提供設計粗糙或高度復雜的遺留代碼的比較清晰簡單的接口,讓新系統(tǒng)與facade交互,facade與遺留代碼交互復雜的工作
5,體現了依賴倒轉原則和迪米特法則