面向对象设计原则八:迪米特原则

迪米特原则(LOP)
  定义:一个对象应当对其他对象尽可能少的了解。
解释说明:
  LOP原则也叫最少支持原则,也就是一个对象应当对其他对象尽可能少的了解,反过来,其他对象也应当尽量少的知道我这个对象,尽可能少的被其他对象所了解。通俗的讲就是不要跟陌生人说话。如果两个类不需要彼此通信的话,那么这两个类就不应该发生作用。当其中一个类需要调用另外一个类的方法时,我们可以通过中介类来实现,这样的好像就是类和类之间的耦合度比较低,比较容易扩展、灵活,模块设计好坏的一个很重要的标志:就是这个模块在多大的程度上能把自己内部的实现和外部的细节隐藏起来,也就是在不影响使用的情况下尽量使用低的访问级别,访问级别也就是public、Private、Protected和Interval。如果我们把成员设置为Public,也就意味着所有的类都可以对他进行访问,带来的问题就是他的使用者可能会增多,对他的修改可能会影响到更多的用户,所以LOP原则就是要求我们尽量使用低的访问级别。
好处就是降低耦合,不希望别人调用的成员,就可以使用低的访问级别,这样自然就降低了类与类之间的耦合度。
但是如果过度的使用LOP原则,就会造成系统通信率降低,因为我们会产生大量的中介类,所以要把握一个度,凡事过犹不及!

时间: 2024-11-08 03:58:00

面向对象设计原则八:迪米特原则的相关文章

【设计模式】#001 面向对象设计的八个原则

1.对于面向对象的软件系统设计来说,在支持可维护性的同事,需要提高系统的可复用性 2.软件的复用可以提高软件的开发效率,提高软件的质量,节约开发成本,恰当的复用还可以改善系统的可维护性 3.面向对象设计简化成三条 3.1 封装变化点 3.2 对接口编程 3.3 多使用组合,少使用继承 点击查看大图:

面向对象设计(OOD)七大原则

这篇文章我会不停的维护它,它将会越来越长,但它是关于我在面向对象中的一些学习的思考心得.希望对自己对各位都能实用处. 开篇前,说明一下写这篇文章的原因.原因是由于设计模式.由于设计模式里的各种模式.都是建立在这些原则之上的. 好比盖房子须要夯实的地基,或者比作数学论证中的使用到的公理.你不能说为什么盖房子一定要建立在地基之上.也不能说为什么两点一直线,三点一面这些公理为什么就这么牛逼的存在,由于这是自然规律.你必须遵守它们. 这些设计原则也类似,它们没有24种设计模式那样华丽的身姿,但它们是程序

S.O.L.I.D: PHP 面向对象设计的五个基准原则

S.O.L.I.D 是首个 5 个面向对象设计 (OOD) 准则的首字母缩写,这些准则是由 Robert C. Martin 提出的,他更为人所熟知的名字是 Uncle Bob. 这些准则使得开发出易扩展.可维护的软件变得更容易.也使得代码更精简.易于重构.同样也是敏捷开发和自适应软件开发的一部分. S.O.L.I.D 意思是: 扩展出来的首字母缩略词看起来可能很复杂,实际上它们很容易理解. S - 单一功能原则 O - 开闭原则 L - 里氏替换原则 I - 接口隔离原则 D - 依赖反转原则

设计模式之禅--六大设计原则之迪米特原则

定义: 一个对象应该对其他对象有最少的了解 它包含以下四层定义 只和朋友交流 朋友类的定义是这样的:出现在成员变量.方法的输入输出函数中的类成为成员朋友类,而出现在方法体内部的类不属于朋友类. 我吧书上的例子简化了一下: A让B去数有多少个C A让B去数有多少个C public class A{ public void command(B b){ List<C> lists = new List<C>(); for(int i = 0; i < 10; ++i){ list.

设计模式2 面向对象设计原则

面向对象设计原则  原则的目的 面向对象设计原创表  单一职责原则案例 开闭原则 案例 依赖倒转原则 案例 面向对象设计原则  对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一.在面向对象设计中,可维护性的复用是以设计原则为基础的.每一个原则都蕴含一些面向对象设计的思想,可以从不同的角度提升一个软件结构的设计水平.  面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含

七大面向对象设计原则

一.面向对象原则综述 七大原则总脉络图: 二.常用的面向对象设计原则包括7个,这些原则并不是孤立存在的,它们相互依赖,相互补充. . 三.以下详细分析: (一)单一职责原则(Single Responsibility Principle, SRP) 1.定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中    或者:就一个类而言,应该仅有一个引起它变化的原因. 2.分析:一个类(或者大到模块,小到方法)承担的职责越多,它被复用的可能性越小,而且如果一个类承担的职责过多,就相当于

7大面向对象设计原则

面向对象设计原则 一.概述 针对软件的可维护性和可复用性,知名软件大师Robert C.Martin认为一个可维护性(Maintainability) 较低的软件设计,通常由于如下4个原因造成:过于僵硬(Rigidity) ,过于脆弱(Fragility) ,复用率低(Immobility) ,黏度过高(Viscosity) .软件工程和建模大师Peter Coad认为,一个好的系统设计应该具备如下三个性质:可扩展性(Extensibility) ,灵活性(Flexibility),可插入性(P

【OOAD】面向对象设计原则概述

软件的可维护性和可复用性 知名软件大师Robert C.Martin认为一个可维护性(Maintainability) 较低的软件设计,通常由于如下4个原因造成:? 过于僵硬(Rigidity) ? 过于脆弱(Fragility) ? 复用率低(Immobility) ? 黏度过高(Viscosity) 软件工程和建模大师Peter Coad认为,一个好的系统设计应该具备如下三个性质:? 可扩展性(Extensibility) ? 灵活性(Flexibility)? 可插入性(Pluggabil

初识面向对象设计--七大原则概述

面向对象设计有以下几种原则 1.开闭原则 Open-Close Principle(OCP) 2.里氏替换原则 Liskov Substitution Principle(LSP) 3.单一职责原则 Single Responsibility Principle(SRP) 4.接口隔离原则 Interface Segregation Principle(ISP) 5.依赖倒置原则 Dependence Inversion Principle(DIP) 6.迪米特原则/最少知识原则 Law of

Java面向对象设计的六大原则

这是设计模式系列开篇的第一篇文章.也是我学习设计模式过程中的总结.这篇文章主要讲的是面向对象设计中,我们应该遵循的六大原则.只有掌握了这些原则,我们才能更好的理解设计模式.我们接下来要介绍以下6个内容. 单一职责原则——SRP 开闭原则——OCP 里式替换原则——LSP 依赖倒置原则——DIP 接口隔离原则——ISP 迪米特原则——LOD 单一职责原则 单一职责原则的定义是就一个类而言,应该仅有一个引起他变化的原因.也就是说一个类应该只负责一件事情.如果一个类负责了方法M1,方法M2两个不同的事