プログラミング雑記

プログラミングの雑記です。

デザインパターン

Memento pattern by java

Mementoパターンは、オブジェクトの状態を保存しておいて後でもとに戻せるようにするパターンである。 caretaker と originatorとmementoというオブジェクトを用意する。 originatorは状態があるオブジェクトである。 mementoはoriginatorの状態保存用のオブ…

Interpreter pattern by java

Interpreter patternの考えはシンプルであるが、高度なパターンである。考え方は 「文法表現」と、「文法表現」を使用して文を解釈する「インタプリタ(実装)」を一緒に定義する。 である。簡単にいうと データベースを操作したいとする。 この時、「文法表…

Composite pattern by java

木構造にオブジェクトを組み立てていくパターンである。 共通インターフェースがある。 共通インターフェースを実現する枝にあたるクラスと、葉にあたるクラスがある。 共通インターフェースを実現するクラスのオブジェクトを枝クラスが持つようにする。 以上

Iterator pattern by java

ある要素の集合を集めたものがあるとする。 その集合の要素の順にアクセスする手段を提供する。 この手段を統一する事で、特定の集合アクセスに依存しない実装となる。つまり、 ListだとList固有のアクセスで中身を取り出す。 配列だと配列固有のアクセスで…

Template Method pattern by java

通常実装するときには、次のようにするだろう。 インターフェース(interface)を作成。 インターフェース(interface)を実装(implements)したクラスを作成。 しかし、ここで工夫の余地が生まれる。 実装クラスで内容が共通のメソッドがあったり、メソッ…

Builder pattern by java

Builderパターンを説明するため、まず以下の構成を見て欲しい。 Product 各種属性(変数)を持っている。 Builder Productを生成して属性(変数)として保持する(だいたいコンストラクタでやる)。 Productの各種属性に(それぞれ)設定をするメソッドを持…

Factory Method pattern by java

ポリモーフィズムにおいて、実行メソッドの探索順序は次のようになっている。 実行時のインスタンスのメソッドを実行する。 実行できないなら、親クラスのメソッドを実行する。 実行できないなら、さらに親クラスのメソッドを実行する。 つまり、親クラスに…

Command pattern by java

ある処理(コマンド)があるとする。 オブジェクト指向としては、この処理(コマンド)もオブジェクトとして扱うべきである。 そして、このようにオブジェクトとして扱えるようにしたのがCommandパターンである。 実装は次のようにする。 処理の対象となるオ…