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()が呼び出される。
}
}
コメント