C#でデザインパターン「Adapterパターン」

C# コンピュータ
C#

Adapterパターンを使うと、既存のクラスを直接加工することなく、新たなインターフェイスを作ることが出来る。

ウィキペディアの「Adapterパターン」のページ
Adapter パターン - Wikipedia

サンプルコード

/// <summary>
/// Adapterパターンのサンプルコード
/// </summary>
class PublicLibrary
{
    public void WriteAll()
    {
        Console.WriteLine("PublicLibrary.WriteAll()");
    }
}

interface IUserLibrary
{
    public void Save();
}
class UserLibrary : IUserLibrary
{
    PublicLibrary _lib;
    public UserLibrary(PublicLibrary lib)
    {
        _lib = lib;
    }
    public void Save()
    {
        _lib.WriteAll();
    }
}
static class Program
{
    static public void Main()
    {
        var oldLib = new PublicLibrary();
        var newLib = new UserLibrary(oldLib);


        newLib.Save();
        // PublicLibrary.WriteAll() <= UserLibraryのSavePublicLibrary.WriteAll()が呼び出される。
    }
}

コメント