勉強会#4 MainSession#2 デザインパターンの奨め

デザインパターンの奨め
2009.05.22 たのアプ
まつけん
デザインパターンとは

オブジェクト指向プログラミングの定石といえるもの。

いろいろなパターンがあります。
GoFによる23のパターン
J2EEデザインパターン
アンチパターン

どういう風に入門すればいいの?
1からデザインパターンを適用した形でコーディング
するには慣れが必要です。

リファクタリングや機能拡張といったソース見直しの
際に適用するのがいいかと思います。

使っていいことあるの?
プログラムを正規化する際に、定跡として利用するこ
とができます。

インターフェース、継承といったオブジェクト指向特有
の機能の使い方を学習することができます。

ただし、なんでもそのパターンにあてはめようとする
と逆に苦労するかもしれません。

あくまでまつけんの所感
オブジェクト指向のメリットが、インターフェース、抽象
化メソッドを使えるということだと思っています。

したがって、デザインパターンを別の名前でいうとす
るなら

「抽象化メソッドのよい使い方集」がちょうどいい感じ
かもしれません。
どんな時に使えるの?
流用されるプログラム(フレームワーク、カスタムコン
トロールなど)に適用すればいい感じかも?

逆に流用度が低いものに関しては、適用するメリット
は少ないのではと考えています。(業務ロジック等)

全部覚えないといけない?

そんなことはありません。
パターンを知らなくても、きれいに分けようとしたら自
然にパターンを使っている場合もあります。
○○パターンで作ってと言われた時に、調べ使いな
がら覚えていけばいいんじゃないと思います。
大事なのは、デザインパターンを使うことじゃなくて、
処理を正規化することです。
サンプル
Template Method
Iterator

まとめ
デザインパターンは、適切に使えばプログラムの流用
性を高めることができます。

ただし、パターンにあてはめることが目的になってし
まうと、逆にコーディング量は増えてしまうかもしれま
せん。
目的はなにかを考えてから、適用する範囲を決めま
しょう。
見やすいソースが書きたい
カスタムパーツを作りたい
とにかく、早く動くものを作らないといけない

参考文献
経験4か月のまつけんのいうことなんか、信じられる
かー!とお思いのあなたは、これ読んで、今度教えて
ください。

Java言語で学ぶデザインパターン入門 結城 浩
.NETで始めるデザインパターン

http://www.atmarkit.co.jp/fdotnet/designptn/index/index.html
ご静聴、ありがとうございました。