博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式--迪米特法则(Lod/LKP)
阅读量:6839 次
发布时间:2019-06-26

本文共 1158 字,大约阅读时间需要 3 分钟。

迪米特法则:(Law of Demeter, LoD),也称最少知识原则(Least Knowledge Principle, LKP)
理解:
     假设两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。假设当中一个类须要调用还有一个类的某一个放发的话,能够通过第三者转发这个调用。

  •   仅仅和朋友交流(更准确来讲是:直接的朋友)
每一个对象都必定会与其它对象有耦合关系,两个对象之间的耦合就成为朋友关系,这样的关系的类型有非常多,如组合、聚合、依赖等。

朋友类的定义:出如今成员变量、方法的输入输出參数中的类。   而方法体类内部的类不能算。
  •   朋友之间也有间距
假设朋友把太多的方法或属性暴露给你。则过于亲热。耦合关系变得异常坚固。并且。改动时涉及的面也就越大。变更引起的风险就越大。

因此,要适时重复衡量:能否够降低public方法和属性,改为private、package-private、protected等訪问权限。及能否够加上finalkeyword。

看个演示样例:
     以下的代码违反了设计原则:
public class Teacher {     public void commond(GroupLeader groupLeader) {        List
listGirls = new ArrayList
(); for (int i = 0; i < 20; i++) { listGirls.add(new Girl()); } groupLeader.countGirls(listGirls); }}
     一个类应该纸盒自己有直接关系的类交流。
正确的方法例如以下:
public class Teacher {     public void commond(GroupLeader groupLeader) {        groupLeader.countGirls();    } }public class GroupLeader {     private List
listGirls; public GroupLeader(List
_listGirls) { this.listGirls = _listGirls; } public void countGirls() { System.out.println("女生数量是:" + listGirls.size()); } }

转载地址:http://xfqkl.baihongyu.com/

你可能感兴趣的文章
用vue优雅地编写UI组件的几条指导原则
查看>>
关于element-ui 中使用Notice组件(Message、MessageBox、Notification)所遇到的坑
查看>>
常用命令
查看>>
「译」在JavaScript中将值转换为字符串的5种方法
查看>>
Java maven的 pom.xml配置文件中使用全局变量配置版本号
查看>>
Rabbitmq安装
查看>>
2016年3月9日作业
查看>>
tomcat 部署站点时遇到的部分问题以及解决方案
查看>>
excel两个下拉框相互关联
查看>>
mysql出现多线程操作同一个表的情况,应该怎么办?
查看>>
springmvc 将post转换为delete,put
查看>>
第二届清华大学项目管理精英训练营【敏捷个人】分享
查看>>
Centos 安装 Solr
查看>>
Android Toast自己定义Toast例子
查看>>
bash shell实现二进制与十进制数的互转
查看>>
精准测试
查看>>
Oracle11G_逻辑备份
查看>>
Linux正变得无处不在;应用大盘点
查看>>
IEEE期刊
查看>>
pssh使用
查看>>