封装就是为了代码的复用以及被统一调用和管理,也就是说比如说封装一个方法,就是为了让所有相同的调用都来调用这个被封装的方法,或者是类对象
但是迪米特法则提出的是一个对象或者模块和其他的模块或者对象应该保持尽量少的通信,也就是说比如一个A对象应该尽量和一个单一的对象(暂且说B对象)进行通信,而其他的模块或者对象如果要用我的服务的应该去调用B对象,或者用调用B对象的C对象最终提供的服务,这样保证的模块的相对独立性,或者所说的模块化,
那么问题就出来了前者是为了提供所有对外的调用接口,而后者是为了尽量的独立不让其他不相关的调用.我想请问各位!

解决方案 »

  1.   

    No. see: http://baike.baidu.com/view/823220.html
      

  2.   

    给你举个例子吧,某地有很多武馆,每个武馆有一个师傅和许多徒弟。武术协会是他们的联盟。封装说的是每个武馆需要一个馆长,有冲突时由馆长出面,不要下面一大群徒弟瞎嚷嚷。迪米特法则说的是武馆与武馆要相互独立,比如不能出现某个馆长既当A武馆的馆长又当B武馆的馆长,不能出现某个学员既在A武馆学习又以B武馆学习,等等。否则如果某个武馆倒闭了,会影响其它武馆的运作。