2017年1月2日 星期一

設計模式 AdpaterPattern 轉接器模式

情境:
目前已經有讀取資料的類別了
要設計一個讀取資料類別支援 Json 格式

1.目前已經有一個讀取資料的方法了



public class FileReader
{
    public string Read(string parameter)
    {
        string result = string.Empty;
        //實作硬碟讀取
        return result;
    }
}




2.設計一個讀取資料的介面



public interface IReadData
{
    string GetJsonData(string parameter);
}




3.繼承這個 IReadData 介面


/// 
/// 從網路上讀取要的資料
/// 
public class WebReader : IReadData
{
    public string GetJsonData(string parameter)
    {
        string result = string.Empty;
        //實作網路讀取
        return result;
    }
}




4.要讓 FileReader 共享 IReadData 介面 這時候轉接器模式就可以上場了


public class FileAdapter : IReadData
{
    public string GetJsonData(string parameter)
    {
        var reader = new FileReader();
        return reader.Read(parameter);
    }
}




總結:
雖然 FileReader 在 FileAdapter 內
但是外部看起來 WebReader 與 FileAdapter 同樣繼承 IReadData 介面

沒有留言:

Visual Studio 2017/2019 推薦的擴充功能與更新

參考文章: 覺得 Google 的 Blogger 不太順手?透過 HTML 的 iframe 移花接木 HackMD