北风设计模式课程---最少知识原则(Least Knowledge Principle) 一.总结 一句话总结: 最少知识原则(Least Knowledge Principle),或者称迪米特法则(Law of Demeter):只和自己直接的 "朋友" 交谈. 1.最少知识原则 的好处是什么? 更好的信息隐藏:It leads to better information hiding. 更少的信息重载:It leads to less information overload. 2…
北风设计模式课程---接口分离原则(Interface Segregation Principle) 一.总结 一句话总结: 接口分离原则描述为 "客户类不应被强迫依赖那些它们不需要的接口". 接口不是为特定的客户类服务,而服务了多个不同的客户类. 1.接口分离原则(Interface Segregation Principle)用来解决什么问题? 用于处理胖接口(fat interface)所带来的问题:如果类的接口定义暴露了过多的行为,则说明这个类的接口定义内聚程度不够好.换句话说…
北风设计模式课程---里氏替换原则(Liskov Substitution Principle) 一.总结 一句话总结: 当衍生类能够完全替代它们的基类时:(Liskov Substitution Principle)则是实现 OCP 原则的重要方式.只有当衍生类能够完全替代它们的基类时,使用基类的函数才能够被安全的重用,然后衍生类也可以被放心的修改了. 1.违背 LSP 原则的一个简单示例(这样设计的不好之处是什么)? |||-begin 一个非常明显地违背 LSP原则的示例就是使用 RTTI…
北风设计模式课程---依赖倒置原则(Dependency Inversion Principle) 一.总结 一句话总结: 面向对象技术的根基:依赖倒置原则(Dependency Inversion Principle)是很多面向对象技术的根基.它特别适合应用于构建可复用的软件框架,其对于构建弹性地易于变化的代码也特别重要.并且,因为抽象和细节已经彼此隔离,代码也变得更易维护. 1.软件设计中的"Bad Design" ? 1.影响多部分:难以修改,因为每次修改都影响系统中的多个部分.…
北风设计模式课程---单一职责原则(Single Responsibility Principle) 一.总结 一句话总结: 一个类应该有且只有一个变化的原因:单一职责原则(SRP:Single Responsibility Principle)可表述为 "一个类应该有且只有一个变化的原因(There should never be more than one reason for a class to change.)".单一职责原则是一个非常简单的原则,但通常也是最难做的正确的一个…
北风设计模式课程---开放封闭原则(Open Closed Principle) 一.总结 一句话总结: 抽象是开放封闭原则的关键. 1."所有的成员变量都应该设置为私有(Private)","要避免使用全局变量(Global Variables)","使用运行时类型识别(RTTI:Run Time Type Identification,例如 dynamic_cast)是危险的" 等等 这些思想的源泉是什么? 开放封闭原则(Open Close…
最少知识原则(Least Knowledge Principle),或者称迪米特法则(Law of Demeter),是一种面向对象程序设计的指导原则,它描述了一种保持代码松耦合的策略.其可简单的归纳为: Each unit should have only limited knowledge about other units: only units "closely" related to the current unit. 每个单元对其他单元只拥有有限的知识,只了解与当前单元紧密…
来源:迪米特法则(LoD)最初是用来作为面向对象的系统设计风格的一种法则,是很多著名系统,如火星登陆软件系统.木星的欧罗巴卫星轨道飞船的软件系统的指导设计原则. 迪米特法则(LoD)又可分为两种:狭义的迪米特法则(LoD)和广义的迪米特法则(LoD). 概念: LOD:LOD,Law Of Demeter 迪米特法则又称最少知识原则,也就是说一个对象应当对其他对象有尽可能少的了解. 狭义的迪米特法则(LoD): 如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用. 如果其中的一个…
定义: 迪米特法则(Law of Demeter,LoD)也称为最少知识原则(Least Knowledge Principle,LKP). 一个对象应该对其他对象有最少的了解.通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少,你(被耦合或调用的类)的内部是如何复杂都和我没关系,那是你的事情,我就知道你提供的public方法,我就调用这么多,其他的一概不关心. 含义: 只和朋友交流 朋友类的定义是这样的:出现在成员变量.方法的输入输出参数中的类称为成员朋友类,而出现在方法体内部的类不属于朋…
github地址:https://github.com/cheesezh/python_design_patterns 迪米特法则 迪米特法则(LoD),也叫最少知识原则,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用.如果其中一个类需要调用另一类的某一个方法的话,可以通过第三者转发这个调用. 举个例子,在一个规模较大的研发团队中,产品经理想给软件加个新功能,那么产品经理应该向开发组长提出需求,由开发组长统筹安排开发资源,安排哪几个程序员去实现新功能,如果产品经理直接找到写代…