現実世界の法則(私のアプリケーションとも呼ばれます)をよりよく理解しようとしていますが、私はチェーンの辞任時に得られる理由と利点についていくつか混乱しています。責任。Demeterの法則 - 現実世界の問題
ここでは、使用を検討している例があります。今、私はいくつかの企業データ、元にアクセスする必要がある関係
Enquiry -> assignedTo -> Room Rooms -> assignedTo -> Building Building -> assignedTo -> Company
を持つクラスがあります。会社名、私はInquiryにアクセスできます。だから私の現在の流れは: enquiry.getManager().getRoom().getBuilding().getCompany().getName()
- かなり長いですね。
私はのLoDに従うならば、それはenquiry.getHostingCompanyName()
に変更されるべきだと思うが、それは私が room.getHostingCompanyName()
とbuilding.getHostingCompanyName()
先行を作成する必要があるように思われ、その結果として、それは非常に壊れやすいだろうとよりもはるかに多くの変更が必要になります以前のアプローチではリファクタリングになります。
これに関するアドバイスはありますか?あるいは、私の前提は完全に間違っていて、別のやり方で行うべきでしょうか?