迪米特法则(Law of Demeter)又叫最少知识原则(Least Knowledge Principle 简写LKP)就是说,一个对象应当对其它对象有尽可能少的了解,也叫做不要和陌生人说话。朋友越多,当然就越好了,在家靠父母,在外靠朋友嘛。为什么在面向对象设计里反而成了不好的事情呢?其实这是了对象不受到其它对象太多的影响。就像革命时期情报员只能单线联系一样,如果其中一个被敌人发现了,其他人不会马上全部都暴露出来。系统里的对象改了某个方法或者被删除了,它只会影响到与它有关联的对象。如果一个对象知道得太多其它的对象,只要其中的某一个对象有改变那它肯定就会受到影响。它知道的对象越多,可能受到影响就会越多。虽然在现代的语言里(C#、Java等)可以使用接口来隔离变化,但是如果连接口都需要改变的时候,依然还是会受到的影响。遵守 迪米特法则可以使对象本身受到其它对象的影响降低到最少。
迪米特法则(Law of Demeter)又叫最少知识原则(Least Knowledge Principle 简写LKP)就是说,一个对象应当对其它对象有尽可能少的了解,也叫做不要和陌生人说话。朋友越多,当然就越好了,在家靠父母,在外靠朋友嘛。为什么在面向对象设计里反而成了不好的事情呢?其实这是了对象不受到其它对象太多的影响。就像革命时期情报员只能单线联系一样,如果其中一个被敌人发现了,其他人不会马上全部都暴露出来。系统里的对象改了某个方法或者被删除了,它只会影响到与它有关联的对象。如果一个对象知道得太多其它的对象,只要其中的某一个对象有改变那它肯定就会受到影响。它知道的对象越多,可能受到影响就会越多。虽然在现代的语言里(C#、Java等)可以使用接口来隔离变化,但是如果连接口都需要改变的时候,依然还是会受到的影响。遵守 迪米特法则可以使对象本身受到其它对象的影响降低到最少。
433



被折叠的 条评论
为什么被折叠?



