Archive for 2月 27th, 2017

デザインパターンについて

月曜日, 2月 27th, 2017

どうも、こんにちは。
新入りのtaka-kです。

会社の先輩、naoyaさんに続いて、技術的な話題で投稿させていただきますm(_ _)m
私は「デザインパターン」について学習記事を投稿します。

まずは「デザインパターンとは何か?」から。
ネットで検索すると定義についてはいろいろと出てきますが、
簡潔にかつ一言でデザインパターンについて説明すると
「よく出会う問題とそれにうまく対処するための設計」
となるのではないかと思います。

我々もよく設計、プログラミングをしていると同じような問題に直面することが多々あります。
その場合、過去、「自分がどのように設計したか?」を参考に解決策を模索します。
そういった解決策を体系化したものがデザインパターンになります。

デザインパターンについてはいくつか種類があります。
一番、有名なものが「GoFの23のパターン」で一般的にデザインパターンといえば、
これを指すようです。

他にも、以下のようなデザインパターンがありますが、本投稿では一番有名な
「GoFの23のパターン」と私が興味を持った「アンチパターン」について触れて
行きたいと思います。

・J2EEパターン
・アンチパターン
・アーキテクチャパターン
・アナリシスパターン
・アンチパターン

◆GoFの23のパターン
GoFの23のパターンには以下のような種類があります。
次回からはこれらを詳細に触れていこうと思います。

●生成に関するパターン
・アブストラクトファクトリ
・ビルダ
・ファクトリメソッド
・プロトタイプ
・シングルトン
●構造に関するパターン
・アダプタ
・ブリッジ
・コンポジット
・デコレータ
・ファサード
・フライウェイト
・プロキシ
●振る舞いに関するパターン
・チェイン・オブ・レスポンシビリティ
・コマンド
・インタプリタ
・イテレータ
・メディエータ
・メメント
・オブザーバ
・ステート
・ストラテジ
・テンプレートメソッド
・ビジタ

次回 「アブストラクトファクトリ」

【参考URL】
http://www.nulab.co.jp/designPatterns/designPatterns1/designPatterns1-2.html
http://www.techscore.com/tech/DesignPattern/foundation/foundation1.html

【参考文献】
Java言語で学ぶデザインパターン入門