💡 門面模式
概述
門面模式(Facade Pattern)是一種結構型設計模式,它提供了一個簡化介面,用於較大、更複雜或不同系統中的一組介面互動
該模式旨在隱藏系統的複雜性,並為客戶端提供一個更簡單和統一的界面
在門面模式中,通常有一個稱為 門面
的類,它包裝了系統的一組複雜子系統,同時向客戶端提供一個簡單的介面,以便客戶端可以與子系統進行互動,而不必了解子系統的內部工作
門面模式的主要優點包括
- 封裝複雜性:它允許客戶端與系統的複雜性隔離,只需與門面互動,而不必理解系統的內部複雜性
- 簡化介面:提供了一個簡單的介面,以便客戶端能夠輕鬆使用系統的功能
- 降低耦合度:客戶端只與門面互動,而不必直接與多個子系統互動,從而降低了系統中各個組件之間的耦合度
範例
1. 定義多個子系統
// 定義多個子系統
public class SubSystemA
{
public void OperationA()
{
Console.WriteLine("SubSystemA Operation");
}
}
public class SubSystemB
{
public void OperationB()
{
Console.WriteLine("SubSystemB Operation");
}
}
public class SubSystemC
{
public void OperationC()
{
Console.WriteLine("SubSystemC Operation");
}
}
2. 定義門面
// 定義門面
public class Facade
{
private SubSystemA systemA;
private SubSystemB systemB;
private SubSystemC systemC;
public Facade()
{
systemA = new SubSystemA();
systemB = new SubSystemB();
systemC = new SubSystemC();
}
public void PerformOperation()
{
Console.WriteLine("Facade is performing operations...");
systemA.OperationA(); // 與子系統A互動
systemB.OperationB(); // 與子系統B互動
systemC.OperationC(); // 與子系統C互動
}
}
3. 主程式
class Program
{
static void Main(string[] args)
{
Facade facade = new Facade(); // 創建門面物件
facade.PerformOperation(); // 執行門面操作
}
}
4. 結果
Facade is performing operations...
SubSystemA Operation
SubSystemB Operation
SubSystemC Operation