![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 65
学习各种设计模式之后的总结
世态炎凉!!
谢谢你的关注!
展开
-
设计模式之----匹配器处理器模式(Matcher-Handler)的理解
文章目录1.前言2.概念3.应用场景4.模式结构5.案例实现6.总结:1.前言之前文章讲过策略模式,不懂的可以点击策略模式,今天再来说个策略模式的升级版(matcher-handler),Matcher-Handler模式也是属于略模式的一种,只不过它是处理比较复杂逻辑的,同时可以处理多种情况,并且它是在运行时决定的一种策略模式!2.概念Matcher-Handler模式:用一种松耦合的方式将原始数据分发传递给一个或多个数据处理器。这个模式显式地将数据鉴别匹配(Match)的责任从数据处理(Hand原创 2021-05-24 20:01:44 · 6781 阅读 · 29 评论 -
设计模式之----装饰者模式(decorator-Pattern)的理解
文章目录1.前言2.概念3.作用4.模式结构5.案例实现1.前言现实生活中,当过圣诞节的时候(老外的节日),但是我们有些人崇洋媚外,也会把圣诞节当成一个节日来过,说到圣诞节,肯定有圣诞树了,圣诞树其实只是一颗而已,只不过在树上装饰了一些了铃铛、蝴蝶结、小玩偶、袜子、彩灯、礼物、纸花、树顶星、雪花片、糖果杖、金丝线/银丝线、圣诞圈(请原谅我百度搜索的),就变成了圣诞树,但是他其实本质还是一颗普通的树,还有就是房子装修啊、相片加相框等,都是装饰器模式。2.概念装饰器模式(decorator-Patte原创 2021-05-15 16:59:56 · 2723 阅读 · 9 评论 -
让你彻底明白什么是高内聚、低耦合?
文章目录1.前言2.什么是高内聚?3.什么是低耦合?4.总结1.前言相信平时在开发中(代码重构,或者软件设计过程中),经常会听到要遵循高内聚,低耦合的原则,那么什么时候高内聚,低耦合呢?2.什么是高内聚?我们常说的高内聚,一般都是功能内聚,高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。模块的内聚反映模块内部联系的紧密程度。一个模块只需做好一件事件,不要过分关心其他任务。高内聚性的好处是可以提高程序的可靠性。这个是官方的定义,下面是我的理解:高内聚就是一个原创 2021-05-08 10:19:52 · 13267 阅读 · 9 评论 -
设计模式之----依赖倒置(Dependency inversion principle)的理解
文章目录1.前言2.概念2.1 什么是依赖?2.2 什么是上层模块和下层模块?2.3 什么是抽象和细节?3.作用4.实现方法5.实例1.前言依赖倒置是面向对象设计领域的一种软件设计原则。 有人会有疑惑,设计原则有什么用呢?设计原则是前辈们总结出来的经验,你可以把它们看作是内功心法。只要你在平常开发中按照设计原则进行编码,假以时日,你编程的功力将会大增。2.概念依赖倒置原则的原始定义为:上层模块不应该依赖下层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象,其核心思想是原创 2021-04-30 20:05:53 · 5654 阅读 · 3 评论 -
设计模式之----状态模式(State-pattern)的理解
文章目录1.前言3.模式的结构和实现3.1 模式的结构3.2模式的实现1.前言在现实生活中,人都有高兴和伤心的时候,不同的时候有不同的行为,有状态的对象编程中高兴,伤心可以看成一种状态,传统的解决方案是:人的不同时候的行为都要考虑到的话,然后使用 if-else 或 switch-case 语句来做状态判断,再进行不同情况的处理。这样代码会会过于臃肿,可读性差,且不具备扩展性,维护难度也大。且增加新的状态时要添加新的 if-else 语句,这违背了“开闭原则”,不利于程序的扩展。### 2.概念状原创 2021-04-22 16:25:57 · 2974 阅读 · 1 评论 -
设计模式之----开闭原则(Open closed principle OCP)的理解
文章目录1.前言2.概念3.作用4.实现方法3.实例1.前言在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。首先介绍下什么是开闭原则?2.概念开闭原则(Open closed principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,软件实体应当对扩展开放,对修改关闭(Software entities should be open for extension,bu原创 2021-04-16 09:59:19 · 2761 阅读 · 1 评论 -
设计模式之----策略模式(strategy-pattern)的理解
文章目录1.前言2.概念3.模式的结构和实现3.1 模式的结构3.2模式的实现1.前言在现实生活中常常遇到多种可选择的情况,例如,出行旅游可以乘坐飞机、乘坐火车、骑自行车或自己开私家车等。在软件开发中也常常遇到类似的情况,当实现某一个功能存在多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能,如果使用多重条件转移语句实现,不但使条件语句变得很复杂,而且增加、删除或更换算法要修改原代码,不易维护,违背开闭原则。如果采用策略模式就能很好解决该问题。2.概念该模式定义了一原创 2021-04-14 20:59:05 · 2880 阅读 · 0 评论 -
设计模式之----命令模式(command-pattern)的理解
1.概念命令模式(Command Pattern)是一种行为型模式。请求以命令的形式包裹在对象中,调用者(invoker)可以处理该命令的对象,并把该命令传给相应的接受者(receiver)对象,该对象执行命令。比如要对行为进行记录、撤销/重做、各种操作等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将"行为请求者"与"行为实现者"解耦?将一组行为抽象为对象,可以实现二者之间的松耦合。2.模式的实现...原创 2021-04-10 15:16:18 · 2895 阅读 · 0 评论 -
设计模式之----观察者模式(observer-pattern)的理解
文章目录1.前言2.概念3.模式的结构和实现3.1 模式的结构3.1 模式的实现1.前言在现实世界中,许多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如,股票价格与股民、微信公众号与微信用户、气象局的天气预报与听众、小偷与警察等。在软件世界也是这样,例如MVC 模式中的模型与视图的关系,事件模型中的事件源与事件处理者。所有这些,如果用观察者模式来实现就非常方便。2.概念当对象间存在一种一对多的依赖关系,则 可以使用观察者模式(Observer原创 2021-04-10 19:36:03 · 2623 阅读 · 0 评论