GOF
こちらの写経です。 State 状態をクラスで表現するパターン。 状態によって振る舞いが変更される場合に効果的。 ソースコード GoF design pattern - State
こちらの写経です。 Iterator 要素の集まりをもつオブジェクトの各要素にアクセスする方法を提供する。 各要素へのアクセス方法はオブジェクトの内部仕様に依存しない。 ソースコード GoF design pattern with Python - Iterator
こちらの写経です。 Observer あるオブジェクトが状態変化したとき、自動的に変更を観察者に通知する仕組みです。 ここではDataクラスのセッターでnotify()メソッドを呼び出すことで、状態変化時に通知を行います。 ソースコード GoF design pattern - Obser…
こちらの写経です。 Factory Method インスタンスの生成を直接行わず、それを担うメソッドに任せる。 これによって生成するインスタンスを柔軟に変更することができる。 ソースコード gist8768467
今回はこちらを参考にしました Singleton 唯一のインスタンスであることが保証されたクラス。 グローバル変数問題やテスト難化などがのため使用には要注意。 ソースコード GoF design pattern - Singleton.py
こちらの写経です。 Mediator オブジェクト間で調整が必要な場合の取りまとめを行う。 オブジェクト同士がお互いを参照しあうことがないようにして、低結合を保つ。 ソースコード GoF design pattern - Mediator
こちらの写経です。 Facade 複数のクラスやメソッドを呼び出す場合、クライアントが呼び出し順などを意識する必要のないよう、一連の処理をまとめて、一つのインターフェイスで提供する。ここでは各TCクラスのメソッド呼び出しをTestRunnerのrunAll()でひと…
こちらの写経です。 Decorator あるクラスに機能を追加したい場合、DecoratorはDecorateeを引数にとるなどしてインターフェイスを同一視して機能拡張が可能。 ソースコード GoF design pattern - Decorator 参考 12. Decorator パターン | TECHSCORE(テック…
こちらの写経です。 Strategy 状況によってアルゴリズムを変更する必要がある場合に有効。 if分の分岐内にアルゴリズムをかき分ける必要がなくなる。各アルゴリズムをカプセル化しアルゴリズムを呼び出すインターフェイスのみ提供する。 クライアントはその…
こちらの写経です。 Adapter あるクラスのインターフェイスをクライアントの要求するインターフェイスへ変換する。ここではAdapterクラスを介してDog、Cat、Human、Carクラス内のメソッドをmake_noise()として呼び出す。 ソースコード GoF design pattern wi…
こちらの写経です。 Builder 具体的な作成物を作成過程に依存しないものにすることで、同じ作成過程で異なるモノを作成することが可能。ここではDirectorクラスはAbstract ClassであるBuilderクラスのメソッド呼び出す。 具体的に作成するモノについてはBuil…
こちらの写経です。 Tmeplate Method アルゴリズムのひな形(Skeleton)となるクラスを作成、具体的な処理はサブクラスの定義に任せる。ここではSkeletonクラスではなくSkeletonメソッドを用意し、 make_template()でSkeletonに任意の関数オブジェクト(ここで…
参考 Pythonでデザインパターン - モジログ http://mojix.org/2012/08/10/python-patternsGOFデザインパターンがPythonで書かれています 一通り写経して身につけたいですね 今年の目標