自然、人类、机器
Home › Forums › 《冒号课堂》讨论区 › 关于Demeter原则的疑问
Tagged: Demeter, LoD, 组合爆炸
something.getWidth().toString();
这样常见的做法岂不也是违背Demeter原则了?
如果toString是所有Object都具有的方法(如Java),并非Width所独有,则不算违背LoD。另外,LoD并非铁律,也不可能完全被遵守。
哦..那么如果是
someExpression.evaluate().toInlineString();
这样的呢?这个toInlineString不是Object的方法
如果是这样,就违背了LoD,可以通过引入新方法以避免这类情况的发生。比如,为类Expression增加一个方法: String evaluateToString() { return evaluate().toInlineString(); }
我想这样方法的数量就有了组合爆炸的可能性吧?
所以说对LoD的遵循要适可而止,不可走极端。
嗯