日历

September 2020
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
282930  

Reply To: 迪米特法则

Home Forums 《冒号课堂》讨论区 迪米特法则 Reply To: 迪米特法则

#1302
Todd
Member

>>LoD虽然不是必须遵守的铁律,但一个有经验的程序员在违背它时,会听到身后的警告声:你知道得太多了:)

http://www.aspiringcraftsman.com/2008/06/distilling-law-of-demeter

这篇文章讲了LoD的思想也提到了LoD不是任何场合都适用。我想到一个例子:Company与CEO的关系,CEO ceo = company.GetCEO()是违反LoD的,但这又是领域模型所需要的。

我曾经想能不能把软件设计得像汽车一样,具有清晰地功能层次和子系统边界。后来发现现实的领域模型比机械结构要复杂得多,更接近于错综复杂的网状,而不是机械的树状结构。这种追求是一种理想的情况,但不是总能达到。

 请您评分1星(很差)2星(不行)3星(一般)4星(不错)5星(很棒)