http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 5195|回复: 7

[学习心得] C#迪米特法则 (LoD)

[复制链接]
发表于 2018-12-21 16:26:07 | 显示全部楼层 |阅读模式

六 、  迪米特法则 (LoD)
迪米特法则(Law of Demeter 或简写 LoD)又叫最少知识原则(Least Knowledge Principle 或简写为 LKP),
也就是说,一个对象应当对其它对象有尽可能少的了解。

其它表述:
只与你直接的朋友们通信
不要跟"陌生人"说话
每一个软件单位对其它的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。

迪米特法则与设计模式
Facade 模式、Mediator 模式

使民无知
《老子》第三章曰:"是以圣人之治,虚其心,实其腹,弱其志,常使民无知无欲。"使被"统治"的对象"愚昧"化,
处于"无知"的状态,可以使"统治"的成本降低。
所谓"最少知识"原则,实际上便是老子的"使民无知"的统治之术。
不相往来
《老子》云:"小国寡民……邻国相望,鸡犬之声相闻,民至老死,不相往来。"将被统治的对象隔离开来,使它
们没有直接的通信,可以达到分化瓦解,继而分而治之的效果。迪米特法则与老子的"小国寡民"的统治之术不谋
而合。


优先考虑将一个类设置成不变类。
尽量降低一个类的访问权限。
谨慎使用Serializable。
尽量降低成员的访问权限。

我们发现随着不断的改进,类的数量也在不断的增加,从2个增加到5个,这意味着为了解耦和提高灵活性通常要编写的类的数量会翻倍.


因此,你需要在这做一个权衡,切莫刻意为了追求设计,而导致整个系统非常的冗余,最终可能得不偿失.



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2018-12-21 16:57:31 | 显示全部楼层
感恩无私的分享与奉献
发表于 2018-12-21 17:05:02 | 显示全部楼层
强烈支持楼主ing……
发表于 2018-12-21 17:13:27 | 显示全部楼层
我只是路过打酱油的。
发表于 2018-12-21 21:25:02 | 显示全部楼层
哈这不就是我一直命名的方法嘛。
发表于 2018-12-22 12:05:57 | 显示全部楼层
真是难得给力的帖子啊。
发表于 2018-12-25 13:53:48 | 显示全部楼层
真是难得给力的帖子啊。
发表于 2018-12-26 11:20:56 | 显示全部楼层
激动人心,无法言表!
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-18 14:53

© 2014-2021

快速回复 返回顶部 返回列表