nyanta wrote: |
|
nyantaです。
先輩からは、「機能ではなくて、処理に注目して分割することがクラス分割すること」といわれたりしましたが、処理と機能の違いってどういうことなんでしょうか?
|
|
お疲れ様です。考え方の問題で難しいですね。
ここでは,僕の考えを書いてみます。
「にゃんたさんに宅急便を送る」というタスクがあったとします。
これを機能分割 TLC と 責務分割 TLC にしてみましょう。
機能分割 TLC は
「送り先を指定して,送る荷物を指定して,送る」
という機能を提供します。
一方で,責務分割 TLC は,
「送る」ことを自分の責務として担当します。
すると,メインのメソッドは「Send」になると思います。
送り先や送る荷物は,責務の一部として既に「知っていれば」要求者にたいして隠蔽することができます。
「知らなければ」送り先を設定するセッター,送る荷物を設定するセッターなどを作るのかと思います。
いずれにしろ,メインの責務は「送る」ことであって
送り先や送るものは隠蔽される可能性があるってところでしょうか。
ちょっと話がそれてしまった感じですかね。。。