- 浏览: 746643 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (419)
- 杂软粉墨 (2)
- 创意灵感 (3)
- 经验记录 (137)
- 开源轨迹 (2)
- sip-communicator (2)
- 闲侃杂谈 (8)
- 问题交流 (24)
- 概念模式 (32)
- 难点备案 (5)
- JwChat (1)
- 中国象棋 (1)
- 教育探索 (6)
- 英语研究 (58)
- 星际争霸 (1)
- 电信知识 (1)
- 软件架构 (3)
- 哲学探索 (26)
- 算法灵魂 (8)
- 近视探索 (6)
- 数学数学 (3)
- 牛角钻尖 (23)
- 至强文言 (3)
- 数据结构 (1)
- 宇宙物理 (2)
- 网络架构 (3)
- 游戏领域 (4)
- 图形处理 (2)
- 修炼之路 (8)
- 读书天地 (20)
- 编解乱码 (2)
- 概念探索 (8)
- 格物致知 (1)
- 其它语言 (1)
- 测试领域 (3)
- 文化风流 (1)
- JQuery (1)
- 網頁領域 (1)
- Unix/Linux (1)
- Inside JVM (1)
- 异常分析 (1)
最新评论
-
suyujie:
引用
HTML <a> 标签灰显禁用 -
suyujie:
HTML <a> 标签灰显禁用 -
suyujie:
HTML <a> 标签灰显禁用 -
suyujie:
HTML <a> 标签灰显禁用 -
iamzhoug37:
您能说一下"局部变量不受文本顺序限制" 是 ...
声明前为什么能赋值却不能输出,都是使用
http://en.wikipedia.org/wiki/Law_of_Demeter
it's an important principle, also known as principle of least knowledge.
In Object Oriented Programming
When applied to object-oriented programs, the Law of Demeter can be more precisely called the “Law of Demeter for Functions/Methods” (LoD-F). In this case, an object A can request a service (call a method) of an object instance B, but object A cannot "reach through" object B to access yet another object, C, to request its services. Doing so would mean that object A implicitly requires greater knowledge of object B's internal structure. Instead, B's interface should be modified if necessary so it can directly serve object A's request, propagating it to any relevant subcomponents. Alternatively, A might have a direct reference to object C and make the request directly to that. If the law is followed, only object B knows its own internal structure.
More formally, the Law of Demeter for functions requires that a method M of an object O may only invoke the methods of the following kinds of objects:
- O itself
- M' s parameters
- any objects created/instantiated within M
- O' s direct component objects
- a global variable, accessible by O , in the scope of M
In particular, an object should avoid invoking methods of a member
object returned by another method. For many modern object oriented
languages that use a dot as field identifier, the law can be stated
simply as "use only one dot". That is, the code a.b.Method()
breaks the law where a.Method()
does not. As a simple example, when one wants to walk a dog, it would
be folly to command the dog's legs to walk directly; instead one
commands the dog and lets it take care of its own legs.
发表评论
-
java语言中classes分类
2012-10-22 13:09 1626local class的scope是local,所以在方法 ... -
URL definition
2012-08-14 08:29 7279http://reg.163.com/login.jsp?ty ... -
how to defend against serialization and reflection attack for eager singleton
2012-08-08 09:18 1299//为什么要定义构造方法 因为不定义它也会有默认构造方法,而 ... -
Finalizer Guardian Idiom
2012-05-30 11:55 1312Effective Java 2nd 中Item 7: A ... -
我對多態的理解
2012-05-24 09:03 1069多态(polymorphism)是以一种看待事物更细致的角度来 ... -
Bridge Pattern
2011-06-17 11:59 841Intent Decouple an abstracti ... -
Composite Pattern
2011-06-17 09:12 966http://userpages.umbc.edu/~ta ... -
Observer Pattern
2011-06-15 11:32 1091consistent communication model ... -
Factory Method
2011-05-27 23:46 1005how does the factory method pat ... -
Several thread-safe singleton collection
2011-02-24 10:19 10351. static inner class publi ... -
关于Arrays.sort()方法用到的设计模式
2011-02-18 09:12 2887/** * Src is the sour ... -
何时使用LSP
2011-01-24 09:12 1015当使用subclass无法满足LSP(Liskov Subst ... -
Command模式图详解
2011-01-12 16:53 969上图是command模式结构图,各个符号重点应该理解,符 ... -
IOC inversion体现在什么地方
2011-01-12 16:02 1068http://martinfowler.com/bliki/I ... -
什么时候需要synchronized
2010-12-02 15:32 1169当需要在某个方法上加synchronized关 ... -
多任务同时执行完毕后方执行后续任务
2010-12-02 10:20 1226多线程同时启动,执行完毕后启动新任务 1.传统join ... -
Apache Struts2 Architecture
2010-07-21 22:38 979Struts is a flexible control la ... -
开闭原则
2010-03-15 13:58 970Closed for Modification; Op ... -
多态之RTTI
2010-01-21 16:58 1397所谓RTTI,是Runtime Type Informatio ... -
26 Hints for Agile Software Development
2009-11-23 16:14 101526 Hints for Agile Software Dev ...
相关推荐
OPLib是一个基于ADO2.8和COM+技术的for VB6的对象持久层(Persistence Layer)框架,它实现了数据库和中间层的Broker功能,提供OR-Mapping,将关系数据库对象映射到Class,使中间层对数据库“无知”(Law of Demeter)。...
设计模式总结、 -- 一,六大设计原则 一,六大设计原则 ... 迪米特法则(Law of Demeter) 也称最小知识原则,一个类应该对自己耦合或者调用的类知道的 越少越好。 开闭原则 对拓展开发,对修改关闭
Law of Demeter 是指一个类的方法不应该依赖其他类的结构,除非是它自己的结构。同时,每个方法应该只发送消息给有限的类集合。 坏设计的危害 坏设计可能会导致以下问题: * Rigidity:僵硬性,难以更改,可能会...
5. 迪米特法则(Law of Demeter) 迪米特法则是指一个对象应该对其他对象保持最少的了解。这意味着一个对象不应该知道其他对象的内部细节。迪米特法则可以使代码更清晰、更易维护。 6. 里氏替换原则(Liskov ...
迪米特原则(law of demeter LOD):尽量降低模块与模块之间的耦合;功能扩展性:满足后期 MT 扩展,满足后期 CI(Continuous Integration)要求。 三、测试用例原则 满足公司编码规范要求;除部分框架外,任何与...
4. **设计模式的原则**:题目中提到了一些面向对象设计的原则,如“不要和陌生人说话”是对迪米特法则(Law of Demeter)的表述,强调对象应仅与其直接朋友通信,减少不必要的依赖;Open-Close原则意味着软件实体应...
同时,外观模式也是“迪米特法则”(Law of Demeter)的一种实现,减少了类之间的耦合度。 外观模式的应用场景很广泛,例如: - **电源总开关**的例子中,`GeneralSwitchFacade` 是一个外观角色,它控制了灯光、...
Closed Principle)、依赖倒置原则(Dependency Inversion Principle)、接口隔离原则(Interface Segregation Principle)、里氏替换原则(Liskov Substitution Principle)、迪米特法则(Law of Demeter)和单一...
6. 迪米特法则(最少知道原则)(Law of Demeter):只与你的直接朋友交谈,不跟“陌生人”说话。一个类对自己依赖的类知道的越少越好。 7. 合成复用原则(Composite Reuse Principle):尽量使用对象组合/聚合,而...
最后,迪米特法则(Law of Demeter, LoD)又称为最少知道原则,它建议一个对象应当尽量少地了解其直接或间接的依赖对象,以减少类间的关系,增强封装性。这通常表现为“只与朋友交流,不向陌生人问好”,意味着一个...
迪米特法则(Law of Demeter,LoD),又称最少知识原则,提倡一个对象应该尽量少地了解其他对象的内部细节。遵循这一原则可以减少类之间的交互,降低系统的复杂性,使得修改和扩展变得更容易。 这六大原则共同构成...
迪米特法则的英文名Law of Demeter,强调了每个对象应该限制其对其他对象的直接访问,以减少间接依赖。在实践中,这意味着对象应仅直接与其直接的朋友交流,而不是通过朋友的朋友。这有助于保持模块边界清晰,降低...
迪米特法则(Law of Demeter, LoD),限制对象之间的交互,减少间接关联,提高内聚性。这些原则共同构成了面向对象设计的基础,有助于构建高质量、易于维护的软件系统。 在实际设计中,遵循这些原则可以帮助我们...
2. **迪米特法则(Law of Demeter, LoD)**:也称为最少知识原则,迪米特法则建议一个对象应该仅与其直接朋友交互,而不是通过陌生的对象。简单来说,就是每个对象应该尽量减少与其他对象的交互,只与直接依赖的对象...
4. **最少知识原则(LKP)/迪米特法则(Law of Demeter)**: 这个原则要求对象只与直接关联的对象交互,以减少类之间的耦合度。遵循此原则,可以降低系统的复杂性,提高模块的独立性。例如,一个类不应直接访问...
- 单一职责原则(Law of Demeter,LoD):一个类应该只有一个引起变化的原因。这有助于保持类的职责单一,使得类更加容易理解和维护。 文档还通过UML图(统一建模语言图),具体解释了每种设计模式的结构,以及它们...
- 迪米特原则(Law of Demeter):一个对象应该对其他对象有最少的了解。 3. 创建型模式和Java对象创建方式: - 简单工厂模式:通过一个工厂类根据输入参数来创建不同对象。 - Java对象创建的方式包括:new...
迪米特法则(Law of Demeter)在云安全中也占有一定地位,它是面向对象设计的一个原则,提倡降低对象之间的耦合度。在云环境中,遵循迪米特法则可以限制数据的传播,减少潜在的安全风险,提高系统的健壮性。 ...
7. **迪米特法则 (Law of Demeter, LoD)**: 迪米特法则也称为“最少知识原则”,建议一个对象应该尽量少地了解其外部对象的细节。这减少了类之间的直接交互,降低耦合,提高系统的可维护性。 这些原则共同构成了...
设计原则是评价代码质量的重要标准,如SOLID原则、DRY(Don't Repeat Yourself)原则、KISS(Keep It Simple, Stupid)原则、YAGNI(You Aren't Gonna Need It)原则和LOD(Law of Demeter)原则。SOLID原则包括单一...