《設計模式》 - 8. 外觀模式( Facade )
Javascript設計模式 - 原文連結
《設計模式》 - 8. 外觀模式( Facade ) :
語言 : C#
說明 :
- 第一步 : 通過 Shape 介面 , 衍生出兩個派生類 正方形 (Square) 和 圓形 (Circle) , Square 和 Circle 兩個類裡都具有 繪製 (draw) 函式 .
- 第二步 : 然後例項化 Maker 類 , 通過 maker 來呼叫 draw 函式繪製圖形 , 不用管裡面的具體實現細節 , 在較大的專案中 , 可以告訴新人介面作用 , 直接呼叫 , 而不必花時間講解實現邏輯 .
作用 :
- 減少系統間的相互依賴 .
- 增加靈活性 .
- 避免低水平程式設計師帶來的風險 .
弊端 :
- 繼承和重寫都不合適 , 修改很麻煩 .
- 不符合開閉原則 .
圖示 :
實現 :
對圖示中的內容稍微簡化了一些 , 大致思路是一樣的 .
- 實現介面Shape , 重寫 draw方法 .
namespace DesignPattern
{
//介面 Shape
public interface Shape
{
void draw();
}
//正方形 Square
public class Square : Shape
{
public void draw()
{
Console.WriteLine("畫正方形");
}
}
//圓形 Circle
public class Circle : Shape
{
public void draw()
{
Console.WriteLine("畫圓形");
}
}
- 建立一個 Maker 外觀類 , 對外提供介面 , 對內隱藏實現細節 .
//外觀類
public class Maker
{
private Shape square;
private Shape circle;
public Maker()
{
square = new Square();
circle = new Circle();
}
//畫正方形
public void drawSquare()
{
square.draw();
}
//畫圓形
public void drawCircle()
{
circle.draw();
}
}
- 例項化外觀類 ( Maker ) , 呼叫 Maker裡的介面 .
//外觀模式
public class FacadePattern
{
static void Main()
{
//例項化 外觀類
Maker maker = new Maker();
//呼叫繪製方法
maker.drawCircle();
maker.drawSquare();
}
}
}
結果 :
相關文章
- 設計模式——9外觀模式(Facade)設計模式
- JS設計模式之Facade(外觀)模式JS設計模式
- C#設計模式-外觀模式(Facade Pattern)C#設計模式
- 設計模式--外觀模式Facade(結構型)設計模式
- C#設計模式系列:外觀模式(Facade)C#設計模式
- 設計模式的征途—11.外觀(Facade)模式設計模式
- 外觀模式(Facade)模式
- 設計模式-外觀模式設計模式
- 設計模式---外觀設計模式設計模式
- 結構模式 01-外觀模式(facade)模式
- 設計模式(十)外觀模式設計模式
- java設計模式-外觀模式Java設計模式
- 設計模式系列-外觀模式設計模式
- 設計模式(十):外觀模式設計模式
- 【設計模式】外觀設計模式
- Python設計模式-外觀模式Python設計模式
- 極簡設計模式-外觀模式設計模式
- JS 設計模式 十一(外觀模式)JS設計模式
- Java設計模式11:外觀模式Java設計模式
- 軟體設計模式————(外觀模式)設計模式
- 設計模式之【門面模式(外觀模式)】設計模式
- PHP中的facade pattern(外觀模式)PHP模式
- 《Head First 設計模式》:外觀模式設計模式
- 設計模式第六講-外觀模式設計模式
- 【23種設計模式】外觀模式(十)設計模式
- 23種設計模式(8)-外觀模式設計模式
- 通俗 Python 設計模式——外觀模式Python設計模式
- 外觀模式(Facade模式)詳解——小馬同學@Tian模式
- 設計模式 | 外觀模式及典型應用設計模式
- 設計模式系列之外觀模式(Facade Pattern)——提供統一的入口設計模式
- java23種設計模式-門面模式(外觀模式)Java設計模式
- Go 實現常用設計模式(八)外觀模式Go設計模式
- 軟體設計模式系列之十二——外觀模式設計模式
- iOS設計模式之二:外觀模式和裝飾器模式iOS設計模式
- 設計模式【9】-- 外觀模式?沒那麼高大上設計模式
- 設計模式學習-使用go實現外觀模式設計模式Go
- 設計模式之外觀模式設計模式
- Objective-C設計模式解析-外觀Object設計模式