设计模式6大原则(5)-得墨忒耳
迪米特法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其它对象有尽可能少的了解,不和陌生人说话。英文简写为: LoD.
假设真的有须要建立联系,也希望能通过它的友元类来转达。因此,应用迪米特法则有可能造成的一个后果就是:系统中存在大量的中介类,这些类之所以存在全然是为了传递类之间的相互调用关系——这在一定程度上添加了系统的复杂度。
比方。美国人就在航天系统的设计中採用这一法则。
假设当中的一个类须要调用还有一个类的某一个方法的话,能够通过第三者转发这个调用。
版权声明:本文博客原创文章。博客,未经同意,不得转载。
设计模式6大原则(5)-得墨忒耳相关推荐
- 【设计模式】七大设计原则--------迪米特法则(得墨忒耳定律)(最少知识定律)
文章目录 1.介绍 2.示例 3.改进 1.介绍 得墨忒耳,是希腊神话的农业女神. 得墨忒耳定律主要内容为: (1)每个单元对于其他的单元只能拥有有限的知识:只是与当前单元紧密联系的单元: (2)每个 ...
- 设计模式6大原则-开闭原则
设计模式6大原则-开闭原则 定义:一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. 开闭原则理念就是当需求改变时,希望在不改变原有代码的前提下,通过扩展模块.函数来满足新需求. 开闭原则是其他 ...
- C#版得墨忒耳定律(迪米特法则)
最近在度娘搜代码优化,看到了Edison Zhou写的<代码整洁之道>(Clean Code)- 读书笔记,里面有个整理很清楚的思维导图,发现有得墨忒耳定律,就想到面试题里的简单经典的问题 ...
- 使用函数的得墨忒耳法则来解耦
编写"羞怯"的代码: 包含两层意思,一个是不向别人暴露你自己,不会没必要的向其他模块暴露任何事情:另一个是不与太多人打交道,不依赖于其他模块实现的模块. 不与太多人打交道,说的就是 ...
- 函数的得墨忒耳法则(转)
函数的得墨忒耳法则 分类: 设计模式与重构 2011-03-21 20:08 58人阅读 评论(0) 收藏 举报 得墨忒耳定律也叫做"最少了解原理",是一种软件设计原理,尤其是应用 ...
- 得墨忒耳定律(Law of Demeter)
得墨忒耳定律(Law of Demeter,缩写LoD)也叫做"最少知识原则",是一种开发软件的设计原理,特别是面向对象的程序设计,得墨忒耳定律是松耦合的一种特殊情况.该指导原则是 ...
- 得墨忒耳法则(迪米特法则)
使用函数的得墨忒耳法则来解耦 编写"羞怯"的代码: 包含两层意思,一个是不向别人暴露你自己,不会没必要的向其他模块暴露任何事情:另一个是不与太多人打交道,不依赖于其他模块实现的模块 ...
- 得墨忒耳定律 (Law of Demeter,缩写LoD)
前言 这篇文章中,我想谈一谈得墨忒耳定律(Law of Demeter,缩写LoD).我觉得这个主题对于写出一手简洁.精心设计和易于维护的代码,是极其重要的. 根据我的经验,看到这条规则被打破,往往意 ...
- 设计模式“6”大原则!
面向对象设计原则 概述 对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一. ...
最新文章
- 武林外传辅助工具详细制作过程[第二篇:查看数据]
- python爬虫中三种数据解析方式
- 如何用SPSS做协方差分析?超详细图文教程
- php html xml,xml和html之间的区别有哪些
- pytorch机器学习_机器学习— PyTorch
- 华为否认启动“塔山计划”;中金:苹果中国区下架微信概率较小;Linux Lab发布v0.5 rc3| 极客头条...
- Struts框架的核心业务
- Java中递归复制多级文件夹(IO流)
- python使用opencv图像聚类_Python3 OpenCV3图像处理-K-means 聚类
- 10:Java人脸识别认证-Java API 实战
- 月薪11970元的网络运维工程师需要掌握哪些必备技能?
- 计算机系统原理实验:模型机(十)ttime部分
- win32 打印机任务管理的 node 模块 (3)详解Win32 Spooler API 获取打印机列表及状态
- 数据标注工具下载中遇到的各种问题
- pbl和sbl_ROKSO、SBL、XBL、PBL、DBL 是什么意思?
- 表格怎么样输入数字自己计算机,表格中输入数字第一个数字是0怎么办
- 在Qt-Creator中使用搜狗输入中文的最简单解决方法(不需要编译安装)
- CPU当中的分支预测
- 廖雪峰老师个人网站推荐
- jetracer——自动驾驶车项目(basic_motion.ipynb)