![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计原则
文章平均质量分 70
佟丽娅
笑看烟雨红尘
一念善,万水千山;一念恶,沧海桑田
展开
-
源码分析七大设计原则之迪米特法则
源码分析之七大设计原则一、迪米特法则定义:迪米特法则又叫最少知道原则,通俗的来讲:就是一个类对自己依赖的类知道的越少越好对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的 public 方法,不对外泄漏任何信息迪米特法则还有一个更简单的定义:只与直接的朋友通信首先来解释一下什么是直接的朋友:每个对象都会与其他对象有耦合关系,只要两个对象之间有耦合关系,我们就说这两个对象之间是朋友关系耦合的方式很多,依赖、关联、组合、聚合等等,其中,我们称出现成员变量、方法参数、原创 2021-12-20 09:00:35 · 120 阅读 · 0 评论 -
源码分析七大设计原则之合成复用原则(Composite Reuse Principle)
一、合成复用原则(Composite Reuse Principle)定义:就是说要尽量的使用合成和聚合,而不是继承关系达到复用的目的该原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分:新的对象通过向这些对象的委派达到复用已有功能的目的二、合成复用与继承复用的比较合成复用优点新对象存取成分对象的唯一方法是通过成分对象的接口这种复用是黑箱复用,因为成分对象的内部细节是新对象所看不见的这种复用支持包装这种复用所需的依赖较少每一个新的类可以将焦点集中在一个任务上这种复用可原创 2021-12-19 09:00:00 · 226 阅读 · 0 评论 -
源码分析七大设计原则之接口隔离原则(Interface Segregation Principle)
一、接口隔离原则(Interface Segregation Principle)定义:建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少即:为各个类建立专用的接口,而不要试图去建立一个庞大的接口供所有依赖它的类去调用在程序设计中,依赖几个专用的接口要比依赖一个综合的接口更灵活接口是设计是对外部设定的 ’ 契约 ',通过分散定义多个接口,可以预防外来变更的扩散,提高系统的灵活性和可维护性说到这里,很多人会觉的接口隔离原则跟单一职责原则很相似,其实不然。其一:单一职责原则原注重原创 2021-12-17 12:00:00 · 189 阅读 · 0 评论 -
源码分析七大设计原则之依赖倒置原则(Dependence Inversion Principle)
一、依赖倒置原则(Dependence Inversion Principle)定义:高层模块不应该依赖低层模块,二者都应该依赖于抽象;抽象不应该依赖细节;细节应该依赖抽象。即针对接口编程,不要针对实现编程依赖倒置原则其实就是谁也不要依靠谁,除了约定的接口,大家都可以灵活自如。依赖倒置可以说是面向对象设计的标志如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计,反之那就是过程化的设计了如果设计的各个部件或类相互依赖,这样就是耦原创 2021-12-16 12:00:00 · 129 阅读 · 0 评论 -
源码分析七大设计原则之里氏替换原则(Liskov Substitution Principle)
一、里氏替换原则(Liskov Substitution Principle)定义:子类型必须能够替换掉它们的父类型。一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,且它察觉不出父类对象和子类对象的区别。也就是说,子类对象可以随时随地的替换父类对象,并且替换完以后,语法不会报错,业务逻辑不会出现问题。只有当子类可以替换掉父类,软件功能不受影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为,正是有里氏代换原则,使得继承复用成为了可能。也正是由于子类型的可替换性才使得使用父类类型原创 2021-12-15 12:00:00 · 265 阅读 · 0 评论 -
源码分析七大设计原则之开闭原则(Open Close Principle)
一、开闭原则(Open Close Principle)定义:软件实体应当对扩展开放,对修改关闭,即:软件系统中包含的各种组件,例如模块(Modules)、类(Classes)以及功能(Functions)等,应该在不修改现有代码的基础上,去扩展新功能。开闭原则中的 开,是指对于组件功能的扩展是开放的,允许对其进行功能扩展的;开闭原则中的 闭,是指对于代码的修改是封闭的,即不应该修改原有的代码二、源码演练反例代码,问题:每增加一种图形,就需要修改 GraphicEditor 类。这样就违背了对扩展开放原创 2021-12-14 12:00:00 · 699 阅读 · 0 评论 -
源码分析七大设计原则之单一职责原则(Single Responsibility Principle)
单一职责原则(Single Responsibility Principle)定义:不要存在多于一个导致类变更的原因,即:一个类只负责一项职责,仅有一个引起它变化的原因。其核心思想:解耦和增强内聚性(高内聚,低耦合)一个类被修改的几率很大,因此应该专注于单一的功能。如果把多个功能放在同一个类中,功能之间可能就形成了关联,改变其中一个功能,有可能会影响另一个功能,这时就需要新一轮的测试来避免可能出现的问题。另外,多个职责耦合在一起,会影响复用性。在软件编程中,谁也不希望因为修改了一个功能导致其他的功能发原创 2021-12-13 09:06:57 · 217 阅读 · 0 评论 -
源码分析之七大设计原则
一、单一职责原则(Single Responsibility Principle)定义:不要存在多于一个导致类变更的原因,即:一个类只负责一项职责,仅有一个引起它变化的原因。其核心思想:解耦和增强内聚性(高内聚,低耦合)一个类被修改的几率很大,因此应该专注于单一的功能。如果把多个功能放在同一个类中,功能之间可能就形成了关联,改变其中一个功能,有可能会影响另一个功能,这时就需要新一轮的测试来避免可能出现的问题。另外,多个职责耦合在一起,会影响复用性。在软件编程中,谁也不希望因为修改了一个功能导致其他的功原创 2020-08-25 17:58:25 · 254 阅读 · 0 评论