迪米特法则

编程原则浅析

匿名 (未验证) 提交于 2019-12-03 00:32:02
作者: pengdai 出处: https://www.cnblogs.com/pengdai 一、开发原则 S:单一职责SRP O:开放封闭原则OCP L:里氏替换原则LSP I:接口隔离法则 D:依赖倒置原则DIP 合成/聚合复用原则 迪米特法则 在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式, 不管用什么语言做开发,都将对我们系统设计和开发提供指导意义。本文主要将总结这些常见的原则和具体阐述意义。 面向对象的基本原则(solid)是五个,但是在经常被提到的除了这五个之外还有迪米特法则和合成复用原则等,所以在常见的文章中有表示写六大或七大原则的; 除此之外我还将给出一些其它相关书籍和互联网上出现的原则; Single-Responsibility Principle,一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则的引申,将职责定义为引起变化的原因,以提高内聚性减少引起变化的原因。 一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。(Every object should have a single responsibility, and that responsibility should be entirely encapsulated by the class.),即又定义有且仅有一个原因使类变更

面向对象设计模式原则06 最少知识原则(LKP)

試著忘記壹切 提交于 2019-12-02 19:47:18
最少知识原则(Least Knowledge Principle,LKP)又叫作迪米特法则(Law of Demeter,LoD),它的定义是:只与你的直接朋友交谈,不跟“陌生人”说话。 其含义是:如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。 迪米特法则中的“直接朋友”包含: 1.当前对象本身 2.当前对象的成员对象 3.当前对象所创建的对象 4.当前对象的方法参数 5.当前对象的方法返回值 这些对象同当前对象存在关联、聚合或组合关系,可以直接访问这些对象的方法。 从迪米特法则的定义和特点可知,它强调以下两点: 1.从依赖者的角度来说,只依赖应该依赖的对象。 2.从被依赖者的角度说,只暴露应该暴露的方法。 来源: https://www.cnblogs.com/asenyang/p/11761342.html

面向对象设计原则

[亡魂溺海] 提交于 2019-11-28 05:28:57
在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员经理根据7条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。 1. 开闭原则(Open Closed Principle, OCP) 软件实体应该对扩展开放,对修改关闭。 这里的软件实体包括以下几个部分: 1) 项目中划分出的模块 2) 类与接口 3) 方法 开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码的前提下,可以扩展模块的功能,使其满足新的需求。 1.1 作用 开闭原则是面向对象程序设计的终极目标,它使软件实体拥有一定的适应性和了灵活性的同事具备稳定性和延续性。具体来说,其作用如下: (1) 对软件测试的影响 软件遵守开闭原则的话,软件测试时只需要对扩展的代码进行测试就可以了,因为原有的测试代码仍然能够正常原型。 (2) 可以提高代码的可复用性 粒度越小,被复用的可能性就约到;在面对对象的程序设计中,更具原子核抽象编程可以提高代码的可服用性。 (3) 可以提高软件的可维护性 遵守开闭原则的软件,其稳定性高和延续性强,从而抑郁扩展和维护。 1.2 实现方法 可以通过“抽象约束、封装变化”来实现开闭原则,即通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,而将相同的可变因素封装在相同的具体实现类中。 因为抽象灵活性好,实用性广,只要抽象的合理