設計の基本や考え方をわかりやすく説明したオブジェクト設計の参考書です。
初心者より、ある程度の経験者に薦めたい本です。
私は、現場でなんとなく覚えてきた設計スキルが整理され、より高いレベルの設計への参考になりました。
第1章「設計概念」が、この本のエッセンスだと思います。
オブジェクトは:
・情報を知っている
・サービスを提供する
・判断する(判断ルールを知っている)
・他のオブジェクトとの結びつきを維持する
オブジェクトが演じる典型的な役割(ロール)は:
・情報提供者
・オブジェクト間の関係の維持役
・加工や計算などの付加価値サービスの提供者
・調整役 (適切なオブジェクトにタスクを委譲する)
・制御役 (判断を行い、他のオブジェクトにアクションを指示する)
・インタフェース役 (異なる世界のオブジェクト間の通信を取り持つ)
オブジェクトの共同作業(コラボレーション)は:
・レイヤアーキテクチャで役割分担する
・集中型制御でコラボする
・分散型制御でコラボする
・委譲型制御でコラボする
第2章「責務駆動設計」と第3章「オブジェクトの見つけ方」は、
設計の進め方を具体的にガイドしてくれます。
第5章「コラボレーション」、第8章「信頼性」、第9章「柔軟性」をきちんと
理解し、実践できれば、かなりハイクラスの設計者だと思います。
個人的には、原書が気に入っています。
表紙のデザインや2色ずりのページのデザインが洗練されていて、ちょっとかっこいいです。