2014年08月24日

アダプター

Adapter

既存のクラスに変更を加えることなく、本来関連のない型として使用するための方法。
似た実装も含めて使用頻度の高い実装方法。

Sample Code


変更を加えない既存のクラス
    class Adaptee
    {
        public void OldMethod(string message)
        {
            Console.WriteLine(message);
        }
    }

既存クラスと関連がないが、使いたい型(インターフェース)
    interface Target
    {
        void NewMethod(string message);
    }

●継承を使用する方法
    class Adapter1 : Adaptee, Target
    {
        public void NewMethod(string message)
        {
            OldMethod(message);
        }
    }
●委譲を使用する方法
    class Adapter2 : Target
    {
        private Adaptee _adaptee = new Adaptee();

        public void NewMethod(string message)
        {
            _adaptee.OldMethod(message);
        }
    }

使う側
    class Tester
    {
        static void Main(string[] args)
        {
            Target target1 = new Adapter1();
            target1.NewMethod("Test");

            Target target2 = new Adapter2();
            target2.NewMethod("Test");
        }
    }
posted by RR at 21:01 | Comment(0) | デザインパターン | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。