前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面向对象的设计原则-"迪米特原则"

面向对象的设计原则-"迪米特原则"

作者头像
别明天就今天吧
发布2020-09-07 19:32:39
3610
发布2020-09-07 19:32:39
举报

Least Knowledge Principle LKP,"迪米特原则":一个对象应该对其他对象有最少的了解。通俗的说就是,一个类应该对自己需要耦合或调用的类知道的最少,你(被耦合或调用的类)的内部是如何的复杂和我没关系,我就知道你提供这么多的public方法,我就调用这么多方法,其他的我一概不关心。

迪米特原则的核心就是解耦合,它对类的低耦合提出一些要求:

  1. 只和朋友交流。 朋友的定义:出现在成员变量、方法的输入输出中的类称为朋友类,而出现在方法体内部的类不属于朋友类。

以上代码中,Teacher类与入参GroupLeader为朋友关系,但是与方法中的Girl也有了交流,破坏了Teacher类的健壮性,方法时类的一个行为,类竟然不知道自己的行为与其他类产生关联,违反了迪米特原则,下面进行一次修改。

这样Teacher类不与Girl类进行耦合,提高了代码健壮性。

2.朋友间是有距离的。

朋友不要把太多的类暴露出来,比如一个方法需要朋友.a()+朋友.b()+朋友.c()才可以实现,这样的话在朋友类创建一个新方法e包含a、b、c,调用方只需要调用朋友的e方法即可,而不是把abc都暴露出去。

尽量不要对外公布太多的public方法和非静态的public变量,多使用private、protected等访问权限。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 别明天就今天吧 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档