![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
23种设计模式
六大设计原则及23种设计模式
梦想不会灭
把每一件简单的事情做好,就是不简单;把每一件平凡的事情做好,就是不平凡!相信自己,创造奇迹~~
展开
-
六大设计原则之「接口隔离原则(Interface Segregation Principle)」
六大设计原则单一职责原则里式替换原则依赖导致原则接口隔离原则迪米特原则开闭原则接口隔离原则定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。举例来说明接口隔离原则:1.未遵循接口隔离原则的设计如下原创 2020-10-12 15:28:12 · 412 阅读 · 0 评论 -
六大设计原则之「单一职责原则(Single Responsibility Principle)」
六大设计原则单一职责原则里式替换原则依赖导致原则接口隔离原则迪米特原则开闭原则单一职责原则单一职责原则(Single Responsibility Principle,SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。简述:单一职责原则(Single Responsibility Principle,SRP)可以看作是低耦合、高内聚在面向对象原则上的引申与扩展,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。原创 2020-10-10 16:22:00 · 321 阅读 · 0 评论 -
六大设计原则之「依赖倒置原则(Dependence Inversion Principle)」
六大设计原则单一职责原则里式替换原则依赖导致原则接口隔离原则迪米特原则开闭原则依赖倒置原则定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。解決方法:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口I间接与类B或者类C发生联系,则会大大降低修改类A的几率示例:class Newspaper implements IReader { public String getContent(){ ret原创 2020-10-12 14:55:12 · 225 阅读 · 0 评论 -
六大设计原则之「开闭原则(Open Close Principle)」
六大设计原则单一职责原则里式替换原则依赖导致原则接口隔离原则迪米特原则开闭原则开闭原则定义: Software entities like classes, modules and functions should be open for extension but closed for modifications. 一个软件实体应该对扩展开放,对修改关闭。定义解析:一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。简介开闭原则(OCP,Open Close原创 2020-10-12 16:42:58 · 825 阅读 · 0 评论 -
六大设计原则之「迪米特原则(Low Of Demeter)」
六大设计原则单一职责原则里式替换原则依赖导致原则接口隔离原则迪米特原则开闭原则迪米特原则定义:最少知识原则(Least Knowledge Principle,简称 LKP),一个类对自己需要耦合或者调用的类应该知道的最少。介绍:1.一个对象应该对其他对象保持最少的了解2.类与类关系越密切,耦合度越大3.迪米特法则(Demeter Principle)又叫最少知道原则,即一个类对自己依赖的类知道的越少越好(h)。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。原创 2020-10-12 16:19:13 · 347 阅读 · 0 评论 -
六大设计原则之「里式替换原则(Liskov Substitution Principle)」
六大设计原则单一职责原则里式替换原则依赖导致原则接口隔离原则迪米特原则开闭原则Java使用extends关键字来实现继承,它采用了单一继承的规则,C++则采用了多重继承的规则,一个子类可以继承多个父类。从整体上来看,利大于弊,怎么才能让“利”的因素发挥最大的作用,同时减少“弊”带来的麻烦呢?解决方案是引入里氏替换原则(Liskov Substitution Principle,简称LSP),什么是里氏替换原则呢?它有两种定义:1.第一种定义,最正宗的定义:If for each obj原创 2020-10-12 14:28:24 · 385 阅读 · 0 评论 -
设计模式之「策略模式(Strategy Pattern)」
策略模式定义:指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。简介在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。策略模式角色环境(Context)角色:持有一个Strategy的引用,最终给客户端调用。抽象原创 2020-10-12 17:10:58 · 155 阅读 · 0 评论