「増補改訂版Java言語で学ぶデザインパターン入門」読んだ

自分用。  これ読んだ。 増補改訂版Java言語で学ぶデザインパターン入門 [単行本] < http://www.amazon.co.jp/dp/4797327030 > 続きを読む
1
べちか @bechica

とりあえず今日の分の本読むか。 『増補改訂版 java言語で学ぶデザインパターン入門(結城 浩 / SBP)』 を。

2011-03-30 00:04:09
べちか @bechica

デザインパターンとはGoFがまとめた、再利用しやすいプログラムのパターン とかそんな感じでいいのかね

2011-03-30 00:55:35
べちか @bechica

GoFが23種類まとめてカタログっぽくまとめた。それが『オブジェクト指向における再利用のためのデザインパターン』。邦訳は1999年。10年以上前なのか。

2011-03-30 00:57:26
べちか @bechica

GoFは23個のパターンを、生成に関するパターン、構造に関するパターン、振る舞いに関するパターン で分類している。 本書では理解しやすい順に並んでいるっぽい。

2011-03-30 00:59:00
べちか @bechica

本編に入る前に、以前まとめられていた Togetter - 「デザパタ140文字」 < http://togetter.com/li/15991 > を引用しておく。

2011-03-30 01:01:11
べちか @bechica

第1章 iteratorパターン。配列のように何かがたくさん集まっているとき、それらを順番に読み取って処理を行うためのパターン。実装と切り離して数え上げができるという意味で forループより有利。

2011-03-30 01:05:08
べちか @bechica

実装と切り離す、というのは オブジェクトを配列を使っていようと、Vectorを使っていようと、順番に読み取る部分の処理に変更を加えなくて済む。

2011-03-30 01:08:37
べちか @bechica

第2章 adapter パターン。 既に提供されているクラスのパラメータをそのまま別のクラスで使えないとき、ラッパーを噛ますことで利用しやすくする。 クラスを使うパターン、インスタンスを使うパターンがある。 前者は継承、後者は移譲を使う。

2011-03-30 01:10:57
べちか @bechica

第3章。Template methodパターン。スーパクラスで大体の処理の枠組みを定め、サブクラスで具体的な処理の内容を記述する。 サブクラスでの処理の流れを大枠でコントロールできる。

2011-03-30 01:16:40
べちか @bechica

スーパクラスで処理の流れを記述してしまっているのでサブクラスでそれらを記述する必要がなくなる分有利。 スーパクラスの変数にサブクラスのどのインスタンスを代入しても正しく動作するように作れ・・・ ってこれLiskovの置換原則じゃん。昨日進研ゼミでならったところだ!

2011-03-30 01:19:50
べちか @bechica

第4章 Factory method パターン。テンプレメソッドパターンに似てる。インスタンスの作り方はスーパクラスで定めるが具体的なクラス名までは定めない。 「どう」インスタンスを生成するかだけスーパクラスに書いて、「何を」はサブクラスに任す。

2011-03-30 01:25:53
べちか @bechica

第5章 Singletonパターン。 これまえ理解できなかったやつだ。

2011-03-30 01:27:15
べちか @bechica

特定のインスタンスがたった1つしか作られないことを保証する。クラス変数として唯一のインスタンスを定義し、このクラスのコンストラクタはprivateにしておく。すると、このクラスのロード時に1個だけインスタンスが生成され、クラス外でインスタンス作ろうとしてもコンパイルエラーになる。

2011-03-30 01:31:05
べちか @bechica

このインスタンスを取得するgetterは必要になるから書いといた方がいいよみたいなことかいてある

2011-03-30 01:33:08
べちか @bechica

なんか保証したいシーン思いつかないからピンとこないけど、しくみはわかった

2011-03-30 01:33:25
べちか @bechica

第6章。Prototypeパターン。すでにあるインスタンスをコピーしてインスタンスを作るパターン。 clone()って書いてある。 クローン作りたいインスタンスは clonableインタフェースを継承したものにする。

2011-03-30 01:38:58
べちか @bechica

第7章 Builder パターン。複雑なインスタンスを作りたいとき、まず部分部分のパーツを作って、あとでガッチャンしよう、みたいなパターン。パーツとして何が必要か、どう結合するかを決めるクラスを作ろう。

2011-03-30 01:44:18
べちか @bechica

第8章 Abstract Factoryパターン。 何これよくわかんない。

2011-03-30 01:47:49
べちか @bechica

Factory methodパターンをもうちょっとゆるふわっとしたようなもののようにみえるような

2011-03-30 01:48:22
べちか @bechica

Factory methodだと 工場で作る製品のパーツはこれとこれで、こう組み合わせよう みたいなのを抽象的に描いたけど、 その工場を抽象化しました みたいな感じっぽい。

2011-03-30 01:50:20
べちか @bechica

第9章 Bridge パターン。これもよくわかんねえ。

2011-03-30 01:55:46
べちか @bechica

機能と実装を分けようって書いてある。

2011-03-30 01:57:48