デザインパターン

なんだかんだで

23パターンですね。この雑記上ではほとんど他人には理解できそうにないメモ書きになっていますが。orz さて、このあたりで、「原典をあさるのが基本だよ〜」ってアドバイスいただきました。 そのとき紹介していただいた本はこれです。オブジェクト指向におけ…

Interpreter パターン

なおこ(・∀・)さんのサイトではこちら。フォーマットを精査するような感じですかね。「あなた!仕様どおりに書いてないじゃない!データもちゃんと入ってないし!」なんて怒っちゃうわけですよ。 Originalな何かを実装しない限り使わないかなぁ・・・。

Command パターン

なおこ(・∀・)さんのサイトではこちら。処理をクラスとして表現するわけですね。共通の情報を元にいくつかの処理がある場合、一つの分岐によって処理クラス自体を入れ替えて使用すると。 これも面白そうなので書いてみました。

Proxy パターン

なおこ(・∀・)さんのサイトではこちら。 代理オブジェクトが間に入り、実際のオブジェクトと変わらない動きをすると。間に一つクラスが入ることにより実際のオブジェクトは必要なときだけ使用する、といった実装になるわけですね。 なんだか面白そうなので自…

Flyweight パターン

なおこ(・∀・)さんのサイトではこちら。一度生成したインスタンスを再利用することでインスタンス生成にかかる処理時間を省こうと言うわけですね。 使用したいオブジェクトのインスタンスがすでにあればそれを利用、無いときだけインスタンスを生成すると。 …

State パターン

なおこ(・∀・)さんのサイトではこちら。なるほどぉ・・・、状態を表すためにクラスを用意してそれらをとっかえひっかえするんですね。このパターン、各クラス間の関係があまり疎で無いイメージがします。しくみは理解できますが、必要とする場面が浮かばない…

Memento パターン

なおこ(・∀・)さんのサイトではこちら。Memento とは「記念品、かたみ」という意味だそうです。状態を記録しておくデザインパターンですね。比較的イメージしやすいかと。気になったところとしては、カレントポジションはフォーム側が持っているということで…

Observer パターン

なおこ(・∀・)さんのサイトではこちら。Observer とは「観察者」という意味です。観察されるものと観察するものを抽象化してインターフェース越しに見るわけですね。サンプルにもあるようにあるコントロールの状態が他のコントロールに影響を及ぼす場合、あ…

Mediator パターン

なおこ(・∀・)さんのサイトではこちら。「仲介」のパターンですね。信頼できる相談相手に相談して指示を仰ぐとわけですね。サンプルではいくつかのコントロールからの相談に応じて、フォームがコントロールの状態を制御しています。 サンプルのように連動す…

Facade パターン

なおこ(・∀・)さんのサイトではこちら。「ふぁけーど」ではなく、「ふぁさーど」と読みますです。手順をクラスにしてしまうということですね。メインロジックからごっそりふぁさーどに任せると。これ、強引にやりすぎると意味なさげな感じがします(ってどの…

Chain Of Responsibility パターン

なおこ(・∀・)さんのサイトではこちら。Chain Of Responsibility とは「責任の連鎖」という意味です。力を合わせて処理をこなすぞ〜、なパターンですね。個々のクラスが自分の処理できる部分だけこなして次のクラスに渡す。んで全体として処理を全うすると。…

Visitor パターン

なおこ(・∀・)さんのサイトではこちら。Visitor とは「訪問者」という意味です。ふむぅ・・・。受け入れ側は受け入れてるだけで、訪問者が受け入れてくれた相手によって仕事を判断するわけですか。 なおこ(・∀・)さんの書かれているとおり、具体的な処理が Conc…

Decorator パターン

なおこ(・∀・)さんのサイトではこちら。Decorator とは「装飾する人」といった意味ですね。リンク先でサンプル眺めました。頭の中で予期していた例外 StackOverflowException が発生しました。(Decolate メソッドで迷子になった。orz)なので、サンプルのプ…

Composite パターン

なおこ(・∀・)さんのサイトではこちら。Composite とは「混成」といった意味ですね。ツリー構造を表現すると面白いです。ちょっと書いてみました。 # Imports ステートメントを追加しました。

Strategy パターン

なおこ(・∀・)さんのサイトではこちら。Strategy とは「戦略」のことですね。リンク先のサンプルでは、データバインドをもクラスとして分離しメインロジックからはずせる雰囲気がぷんぷんですね。 バインドするコントロールがどうなろうと、サポータがちゃん…

Bridge パターン

なおこ(・∀・)さんのサイトではこちら。Bridge とは「橋」のことですね。ふむぅ・・・拡張をサポートするパターンですね。見た感じ、メインロジックは実装と機能をそれぞれ選択する、と。んでもって、分離されていることにより実装の拡張も機能の拡張も互いに影…

Abstract Factory パターン

なおこ(・∀・)さんのサイトではこちら。Abstract Factoryとは「抽象的な工場」のことです。なおこ(・∀・)さんのサンプル、じーっと眺めているわけですが、ふむぅ、メインロジックからは基本クラスで抽象的にしか見えてないけど、実際には具体的な実装を持つ…

Builder パターン

なおこ(・∀・)さんのサイトではこちら。Builderとは「構築者」という意味だそうです。Directorによって手順が抽象化され、、Builderによって構築するものが抽象化される、って感じかな。 具体的なロジックがメインロジックからどんどん分離されますねぇ♪

ProtoType パターン

なおこ(・∀・)さんのサイトではこちら。ProtoTypeとは「原型」のことです。*1ん〜、いまいち実装のイメージがつかめません・・・。orz 宿題、宿題と。 *1:goo 辞書 曰く。

Singleton パターン

なおこ(・∀・)さんのサイトではこちら。Singleton とは「ひとりっ子」のことです。*1つまりは単一のインスタンスである事を保障するためのデザーンパターンですね。 一人で開発していると、一つのインスタンスを使用することを(努力と注意により、ですが。…

Factory Method パターン

なおこ(・∀・)さんのサイトではこちら。Factory・・・「工場」ですね。インスタンスの生成を別のクラスにまかせ、その生成されたものを扱うだけにする、そうすることでメインロジックから具体的な生成ロジックをはずせるわけですね。 いままで生成ロジックをメ…

Template Method パターン

なおこ(・∀・)さんのサイトではこちら。Templateとはまんま「テンプレート」ですが、「雛形」のことです。*1実装を強制する雛形ってことでしょうか。一連の処理は基底クラスで実装しとくから必要なデータはそれぞれサブクラスで作ってね、とか。 ほほ〜、継…

Adapter パターン

なおこ(・∀・)さんのサイトではこちら。Adapterとは「調整装置」のことです。*1すでにあるものが使えそうだけど・・・まんまじゃ使えない、ちょっとした違いなんだけどな〜、って時にすでにあるものを再利用するために調整するインターフェイスを用意するパター…

Iterator パターン

なおこ(・∀・)さんのサイトではこちら。Iterationは「反復」という意味です。ある集合体の要素を反復処理するときのデザインパターンということですね。 実装の例はリンク先を見るとして、集合体を使う側のクラスでその集合体が何であるか(配列とか、ArayyL…