デザインパターンのエッセンス
デザインパターン一覧
デザインパターンの記事を書き終えたので、まとめておきます。各々のデザインパターンの詳細は、下記のページをご覧ください。
デザインパターンが重要なワケ
どのような言語でも、プログラミングの学習はたいていの場合、世界にこんにちはとつぶやくところから始まる。例えばJavaの場合は、以下のようになる。
System.out.println("Hello World!");
その後、次のように変数が定義できることを知る。
int a = 1;
次に、関数を定義できることを知る。
int myFunc(int a) { return a++; }
オブジェクト指向に基づくプログラミング言語の場合は、クラスという概念も学ぶことになるだろう。
public myClass { public int a = 1; public int myFunc(int b) { return a + b; } }
このようにしてプログラムをひととおり学ぶと、どんなアルゴリズムは自分で作れるようになる。これでプログラミングの学習は終わり。めでたしめでたし。…と思いきや、そうは問屋が卸さない。
"好きなようにプログラミングできる"ことは、"どのように実装するかを選択する"ことをプログラマに強いる。そして、プログラマは例えば次のような悩みを持つだろう。
- 継承と委譲をどう使うか
- どのようにメソッドを切るか
- ロジックをどうやって共通化するか
- 機能と実装をどうやって分離するか
- 拡張性を保持するにはどうすべきか
- 再利用性を保証するにはどうすべきか
- 可読性を高めるにはどうすべきか
- …
これらの悩みに対して、プログラマは長年にわたって知見を蓄積してきた。それらのTipsをプログラム設計のカタログとしてまとめたものが、デザインパターンである。デザインパターンは、プログラマが培ってきたプログラミングのパターンを集約したものと考えてよい。
したがって、綺麗なコードを書くための第一歩は、デザインパターンの理解から始まる。また、あまり気付かれないが、既存のコードを読むためにもデザインパターンの習得が重要である。
デザインパターンを分かりやすく
デザインパターンの解説書や解説しているホームページは数多くあるが、読むのがうんざりするほど長い。デザインパターンの解説なのに、デザインパターン以外の部分がこれでもかと盛り込まれている。また、ページをまたいで解説されているため、理解がしにくい。
そこで、本ブログではデザインパターンのエッセンスだけを以下にまとめた。JavaプログラムをUMLに併記することで、一目で流れを確認できるようにしている。UMLが読める人でJavaの文法をひととおり勉強した人であれば、お役に立つのではと思う。
参考・引用
- 作者: 結城浩
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2004/06/19
- メディア: 大型本
- 購入: 51人 クリック: 762回
- この商品を含むブログ (394件) を見る