デザインパターンについて
こんにちは。
今日はデザインパターンについて学んだことを記録しておきます。
デザインパターンはクラスライブラリそのものではない
Javaでプログラムを書くときには、便利なクラスが集まったクラスライブラリを使用する。
デザインパターンは、クラスライブラリそのものではありません。
デザインパターンは、クラスライブラリより一般的な概念。
クラスライブラリ : 部品となったプログラムそのもの
デザインパターン : 部品がどのように組み立てられているか、ここの部品がどのように関連して大きな機能を果たすのかを表現したもの。
デザインパターンを理解する上で重要なこと
「具体的なプログラムを読むこと」ではなく、どういう種類のクラスやインタフェースが出てきて、それらが互いにどういう関係にあるかが重要です。
そういう意味で、UMLを理解することが必要です。
takahitonakashima.hatenablog.com
Javaのクラスライブラリでのデザインパターン
デザインパターンは「クラスライブラリそのものではない」という話が出ましたが、Javaの標準的なクラスライブラリの中には、デザインパターンがたくさん生かされている。
具体的な例としては以下のようなものがある。
・java.util.Iterator : Iteratorパターンが使われている。
・java.util.Observer : Observerパターンが使われている。
・java.util.Calender
・java..util.Security
・java.util.NumberFormat
上記の3つでは、Factory Methodパターンが使われている。
・java.awt.Component
・java.awt.Container
上記の2つでは、Compositeパターンが使われている。
デザインパターンの見方
デザインパターンの目標の1つとして「プログラムを再利用可能にする」ということがある。
すなわち、どうやってプログラムを「部品」として再利用するかを考えている。
そのため、以下の観点でプログラムを見ると理解が深まる。
・どのような機能が拡張される可能性があるのか
・その機能拡張を行うときに修正が必要になるのはどのクラスか?
・修正が不要なのはどのクラスか?
重要な点は、「プログラムを完成品として見ないこと」です。
学習法について
「自分で例を考えること」が大切。
プログラムを読むだけではなく、自分なりの例を考えてみると良い。
読んでいただきありがとうございます!
参考にしたもの