【せきむくどうせっけい】
責務駆動設計 とは?
💡 誰が何の責任を持つか、役割分担で設計する術
📌 このページのポイント
責務駆動設計って、責務ってどういう意味?
責務は「そのオブジェクトが果たすべき役割と責任」のことだよ。たとえば会社でいうと「経理は財務管理をする」「営業は顧客対応をする」みたいに、誰が何を担当するかをはっきり決めることだね
データじゃなくて役割で考えるの?
そうなんだ。たとえば「注文」クラスを作るとき、「注文データを持つ箱」と考えるんじゃなくて、「注文の合計を計算できる」「在庫を確認できる」という責務で考える。すると自然と良い設計になるんだよ
CRCカードって何?
名刺サイズのカードに「クラス名」「責務」「協調するクラス」を書き出す手法だよ。ホワイトボードの前でカードを並べながらチームで議論すると、責務の偏りや抜け漏れが見えてくるんだ
責務が偏るとどうなるの?
1つのクラスに責務が集中すると「神クラス」と呼ばれるアンチパターンになるよ。何でもできるけど、変更するたびにあちこち壊れる。責務を適切に分散させるのが、保守しやすいコードの秘訣なんだ
他の設計手法とはどう使い分けるの?
まとめ:ざっくりこれだけ覚えればOK!
「責務駆動設計」って出てきたら「各部品の役割と責任をはっきり決めて設計する手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Responsibility-Driven Design」 = 責務駆動設計
💬 レベッカ・ワーフスブラックとアラン・マッキーンが提唱した設計手法だよ。「オブジェクトは何を知っていて、何ができるのか」を考えるのが出発点なんだ