您的位置:首页 > 其它

设计模式六大原则——迪米特法则(LoD)

2014-05-30 16:49 211 查看

    1、背景

     在图书馆借书,刚开始的时候,直接跑到相应的楼层去,到里面去转,去找要借的书,在里面溜达半天才能找到;后来知道图书馆有一个电脑查询处,然后直接在电脑上输入想要借的书,电脑就会显示你想要借的书的信息,还有所在的相关楼层存放的相关位置。

      


   

    2、定义

     迪米特法则(Law of Demeter)又叫作最少知识原则(LKP,Least Knowledge Principle),就是说一个对象应当对其他对象有尽可能少的了解,类与类之间的了解的越多,关系越密切,耦合度越大,当一个类发生改变时,另一个类也可能发生变化。

  核心思想:最少依赖

  具体体现:
类内部应该高内聚,设置相应的权限,有选择的暴露方法,这就是封装的奥秘。
类的依赖关系尽量减少,保持简单和独立,降低耦合。
  有些东西,可以适当的知道,知道的太多对你不好。关系越复杂,人越不敢接近你。要达到很高的内修养,才能有很好的表现。
  

  3、设计模式中的具体应用

  1)、门面(外观)模式

   如果一个子系统内部的对象构成自己的朋友圈,而子系统外部 对象都属于陌生人的话,那么子系统外部的对象与内部的对象就不应当直接通信,而应当通过一个双方都认可的朋友,也就是门面对象进行通信,这就导致了门面模式。
 


   2)、中介者模式

   这里一些对象形成一个中等规模的朋友圈,而圈内很多的对象都有排列组合般的交互作用。这时,可以通过创造一个大家共有的朋友对象,然后大家都通过这个朋友对象发生相互作用,而将相互之间的直接相互作用省略掉,这就导致了中介者模式。
  


    3、规则建议

    在类的划分上,应当创建弱耦合的类,类与类之间的耦合越弱,就越有利于实现可复用的目标。
   在类的结构设计上,每个类都应该降低成员的访问权限。
   在类的设计上,只要有可能,一个类应当设计成不变的类。
   在对其他类的应用上,一个对象对其他类的对象的应用应该降到最低。尽量限制局部变量的有效范围。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息