![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
该类目主要存放设计模式和设计模式在日常开发过程中的实战
逍遥壮士
每一个你不满意的当下,都有一个你不曾努力的过去!
展开
-
设计模式-传输对象模式
上文(设计模式-拦截过滤器模式):https://blog.csdn.net/qq_16498553/article/details/107141922目录背景传输对象模式是什么?角色:优点:缺点:传输对象模式可以干嘛?个人理解:源码下载:https://gitee.com/hong99/design-model/issues/I1IMES实现代码结果源码下载:https://gitee.com/hong99/design-model/issues/I1I..原创 2020-07-06 19:47:59 · 282 阅读 · 0 评论 -
设计模式-服务定位器模式
上文(设计模式-拦截过滤器模式):https://blog.csdn.net/qq_16498553/article/details/107128062目录背景服务定位器模式是什么?角色:优点:缺点:个人理解:服务定位器模式类图源码下载:https://gitee.com/hong99/design-model/issues/I1IMES实现代码结果源码下载:https://gitee.com/hong99/design-model/issues/I1IME.原创 2020-07-05 17:37:59 · 279 阅读 · 0 评论 -
设计模式-拦截过滤器模式
上文(设计模式-前端控制器模式):https://blog.csdn.net/qq_16498553/article/details/107029073目录背景拦截过滤器模式是什么?角色:优点:缺点:拦截过滤器模式可以干嘛?个人理解:拦截过滤器模式类图源码下载:https://gitee.com/hong99/design-model/issues/I1IMES实现代码结果源码下载:https://gitee.com/hong99/design-mod..原创 2020-07-04 18:11:39 · 562 阅读 · 0 评论 -
设计模式-前端控制器模式
上文(设计模式-数据访问对象模式):https://blog.csdn.net/qq_16498553/article/details/107010213背景记得在java里面写过html代码的同学,痛苦大家都知道,想拓展,同样一份代码维护性和继承性可以说真的把java三种特性彻底搞没了,而且,还他xxx难维护。前端控制器模式是什么?前端控制器模式(Front Controller Pattern)是用来提供一个集中的请求处理机制,所有的请求都将由一个单一的处理程序处理。该处理程序可以做认原创 2020-06-29 21:40:17 · 911 阅读 · 0 评论 -
设计模式-数据访问对象模式
上文(设计模式-组合实体模式):https://blog.csdn.net/qq_16498553/article/details/106979401背景经历过jsp页面请求jdbc然将数据库中的数据直接查出后直接返回给控制器,然后jsp渲染的痛,相信经历过的都很清楚,这样的很难维护,而现在流行的mvc模式,其实m分为dao和entity两层,dao负责与数据库交互,而entity作为数据模型,很好起到了隔离作用。数据访问对象模式是什么?数据访问对象模式(Data Access Objec原创 2020-06-28 23:27:21 · 454 阅读 · 0 评论 -
设计模式-组合实体模式
上文(设计模式-业务代表模式):https://blog.csdn.net/qq_16498553/article/details/106955336目录背景组合实体模式是什么?组合实体模式可以干嘛?个人理解:组合实体模式类图源码下载:https://gitee.com/hong99/design-model/issues/I1IMES实现代码结果源码下载:https://gitee.com/hong99/design-model/issues/I1IMES最后.原创 2020-06-27 10:32:23 · 417 阅读 · 2 评论 -
设计模式-业务代表模式
上文(设计模式-访问者模式):https://blog.csdn.net/qq_16498553/article/details/106934637目录背景业务代表模式是什么?角色:优点:缺点:业务代表模式可以干嘛?业务代表模式类图源码下载:https://gitee.com/hong99/design-model/issues/I1IMES实现代码结果源码下载:https://gitee.com/hong99/design-model/issues/I1IM原创 2020-06-25 10:15:50 · 418 阅读 · 0 评论 -
设计模式-MVC模式
上文(设计模式-访问者模式):https://blog.csdn.net/qq_16498553/article/details/106912484目录背景MVC模式模式是什么?角色:优点:缺点:MVC模式可以干嘛?MVC模式类图实现代码源码下载:https://gitee.com/hong99/design-model/issues/I1IMES结果源码下载:https://gitee.com/hong99/design-model/issues/I1IME原创 2020-06-23 23:59:30 · 1038 阅读 · 0 评论 -
设计模式-访问者模式
上文(设计模式-模板模式):https://blog.csdn.net/qq_16498553/article/details/106893520背景记得去北京旅游的时候,有一件痛苦的事情就是上厕所,真是件非常痛苦的事情,有时候人一多,女厕所人太多了,直接跑到男的这边来了,搞得很无语,第一次看到这种壮观....不过上厕所男女有别倒是类似于访问者,不同的人根据不同的身份访问不同的厕所。访问者模式是什么?访问者模式(Visitor Pattern)是一个行为模式,封装一些作用于某种数据结构中的原创 2020-06-22 23:38:36 · 235 阅读 · 0 评论 -
设计模式-模板模式
上文(设计模式-策略模式):https://blog.csdn.net/qq_16498553/article/details/106842585目录背景模板模式是什么?角色:模板模式可以干嘛?优点:缺点:个人理解:模板模式类图源码下载:https://gitee.com/hong99/design-model/issues/I1IMES代码实现结果源码下载:https://gitee.com/hong99/design-model/issues/I1IM原创 2020-06-21 23:57:27 · 154 阅读 · 0 评论 -
设计模式-策略模式
上文(设计模式-空对象模式):https://blog.csdn.net/qq_16498553/article/details/106821947目录上文(设计模式-空对象模式):https://blog.csdn.net/qq_16498553/article/details/106821947背景策略模式是什么?角色:策略模式可以干嘛?优点:缺点:个人理解:策略模式类图源码下载:https://gitee.com/hong99/design-model/is原创 2020-06-18 20:35:16 · 144 阅读 · 0 评论 -
设计模式-空对象模式
上文(设计模式-状态模式:https://blog.csdn.net/qq_16498553/article/details/106779982目录背景空对象模式是什么?空对象模式可以干嘛?空对象模式类图源码下载:https://gitee.com/hong99/design-model/issues/I1IMES实现代码结果源码下载:https://gitee.com/hong99/design-model/issues/I1IMES最后背景一般情况在编写代原创 2020-06-18 00:44:09 · 221 阅读 · 0 评论 -
设计模式-状态模式
上文(设计模式-观察者模式):https://blog.csdn.net/qq_16498553/article/details/106747698目录背景状态模式是什么?状态模式可以干嘛?状态模式类图源码下载:https://gitee.com/hong99/design-model/issues/I1IMES实现代码结果(更多案例请下载源码,查看)源码下载:https://gitee.com/hong99/design-model/issues/I1IMES最原创 2020-06-16 08:45:34 · 216 阅读 · 0 评论 -
设计模式-备忘录模式
上文(设计模式-中介者模式):https://blog.csdn.net/qq_16498553/article/details/106591438目录背景备忘录模式是什么?备忘录模式可以干嘛?备忘录模式类图源码下载:https://gitee.com/hong99/design-model/issues/I1IMES实现代码结果更多案例请下载源码参考,这里就不一一贴出。源码下载:https://gitee.com/hong99/design-model/issu..原创 2020-06-14 15:56:15 · 124 阅读 · 0 评论 -
设计模式-中介者模式
上文(设计模式-迭代器模式):https://blog.csdn.net/qq_16498553/article/details/106722867目录背景中介者模式是什么?中介者模式可以干嘛?中介者模式类图源码下载:https://gitee.com/hong99/design-model/issues/I1IMES实现代码结果最后背景随着汽车越来越普及了,很多家庭配置了汽车,其实很多是闲置状态,也只是代代步,但是为了方便出门提升司机们的收入,滴滴推出了顺风..原创 2020-06-13 20:06:30 · 208 阅读 · 0 评论 -
设计模式-迭代器模式
上文(设计模式-责任链模式):https://blog.csdn.net/qq_16498553/article/details/106694750目录背景迭代器模式是什么?迭代器模式可以干嘛?迭代器模式类图源码下载:https://gitee.com/hong99/design-model/issues/I1IMES实现代码结果源码下载:https://gitee.com/hong99/design-model/issues/I1IMES最后背景每次想...原创 2020-06-12 20:17:12 · 170 阅读 · 0 评论 -
设计模式-解释器模式
上文(设计模式-责任链模式):https://blog.csdn.net/qq_16498553/article/details/106591259背景随着中国加入wto各国贸易频繁,不同的国度使用的语言不一样,但是在交流过程中很多国家以英文作为交流的对象,而翻译官就是将将两种不同的语言互相翻译,传达各自听得懂的语言,这里翻译,可以通过解释器模式一样来转换。解释器模式是什么?解释器模式(Interpreter Pattern),属于行为模式,给定一个语言,定义它的文法的一种表示,并定义一个原创 2020-06-11 18:53:18 · 241 阅读 · 2 评论 -
设计模式-命令模式
上文(设计模式-责任链模式):目录背景命令模式是什么?命令模式可以干嘛?命令模式类图实现代码结果最后背景一般餐厅过去点餐,都有一个专门的服务员,拿着小本本,由你点菜,确认需求后,最后统一给你下单,并且通知给厨师,厨师拿到这个单后就直接开始做了...其中客户点餐(command),服务员下单这个是命令(command),而像这种由专门的服务员来给你统一提交订单给厨师,算是命令模式的一种现实呈现。命令模式是什么?命令模式(Command Pattern)是一种.原创 2020-06-09 21:09:07 · 996 阅读 · 0 评论 -
设计模式-享元模式
上文(设计模式-外观模式):https://blog.csdn.net/qq_16498553/article/details/106585351背景夏天降温,各家各户使用降温神器各不一样,有的用风扇,有的用冷风扇,有的用空调,牛逼的直接有中央空调(有钱,真有钱~),重点是要用,如果没有想用那装一个,下次直用就就OK了,而一般一个房间装一台就OK,不用重复装多台(你家里有钱除外),每次就直接使用,享元模式就是解决这种重复。享元模式是什么?定义:享元模式(Flyweight Pattern)属原创 2020-06-07 16:19:13 · 867 阅读 · 0 评论 -
设计模式-责任链模式
上文(设计模式-代理模式):目录背景责任链模式是什么?责任链模式可以干嘛?责任链模式类图实现代码源码下载:https://gitee.com/hong99/design-model/issues/I1IMES结果最后背景基本每个在职人员,都经历过请假的事情。正常情况下,请假需要经过上级部门领导审批,而公司有总经理、部门经理、组长 有的甚至更多职位。请假也分为很多种情况,比如,事假、病假、调休假,这种一般组长就可以给你审批了。而像产假或特殊长休假有的公司...原创 2020-06-10 21:01:34 · 246 阅读 · 0 评论 -
设计模式-代理模式
上文():背景日常生活中,有非常多的代办、代处理,比如代找货源、代租房、代记、代办证件等,代办人就是这个代理的对象,通过代理人来达到办理的目的或结果,并且得到一样的结果。就比如:你想喝多了,回家找一个滴滴代驾,把车开到目的地,一样实现到达的结果是一样。代理模式是什么?代理模式(Proxy Pattern)也叫委托模式,属于结构型模式,为其他对象提供一种代理以控制对这个对象的访问。代理分为静态代理,和动态代理。静态代理:预先指定了代理与被代理都的关系,比如:一开始就知道代驾的是哪位师傅,男原创 2020-06-08 19:09:36 · 430 阅读 · 0 评论 -
设计模式-外观模式
上文(设计模式-装饰器模式):https://blog.csdn.net/qq_16498553/article/details/106562454背景一般想DIY电脑个性人配置,要么自己来组装(很费劲),要么买在电脑城买好组件找师师傅帮你装,不用理那么多,而外观模式就是类似这种为你组装好的人员。外观模式是什么?外观模式也叫门面模式,是一种系统与外部之间通信通过一个统一的门面对象进行。外观模式可以干嘛?主要解决不同系统之间交互,由统一的入口(门面)来进行交互,这样使用系统之间互相原创 2020-06-06 11:50:45 · 165 阅读 · 0 评论 -
设计模式-装饰器模式
上文(设计模式-组合模式): https://blog.csdn.net/qq_16498553/article/details/106557066背景 现代人每个人基本都会有一部手机,有的有好几部,正常情况下买手机有很多套餐,比如裸机、裸机+贴膜、裸机+贴膜+手机壳等,但是不一定每个人在购买的时候都一定会贴膜,所以个性化需求就出来了,所以这个贴膜,总不能一出厂就有了,一般后续服务中增加的,属于装饰品,而装饰器模式就解决该问题。装饰器模式是什么? 定义:装饰器动态给一个对象添加一些额外的功原创 2020-06-05 07:25:47 · 183 阅读 · 0 评论 -
设计模式-组合模式
上文(设计模式-过滤器模式):https://blog.csdn.net/qq_16498553/article/details/106532693背景世界分为7大洲,每个国家,一般只属一个洲(像俄罗斯这种除外哈),这样的话就构建成级联关系,一般世界上任何某处地区都所属某个国家,而这个国家又所属某个洲,组合模式是就是将地区(基本对象)和组合对象(国家、洲)不断的去组合成更复杂的的对象。将所有的地区组成树型结构;组合模式是什么?组合模式(Composite Pattern),又叫部分整体模式,原创 2020-06-04 20:15:25 · 248 阅读 · 0 评论 -
设计模式-过滤器模式
上文(桥梁模式):https://blog.csdn.net/qq_16498553/article/details/106486273背景今年的高考推迟了,每年的高考完后有喜有悲,当然每个人考得的分数不同,所以结果就不用,而一般高校都是有严格的分数界限的,比如211和985、一本、二本、三本、还有普通专科...过滤器模式是什么?过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们原创 2020-06-03 21:02:05 · 422 阅读 · 0 评论 -
设计模式-桥梁模式
上文(适配器模式):https://blog.csdn.net/qq_16498553/article/details/106484298背景日常生活中,每家每户都是有电视机的,但是相同的电脑机可能不同的型号就会出现只能专机专用遥控器,这样一来家里要是有几个房间,可否统一成一个遥控器来控制?桥梁模式是什么?桥梁模式是结构型模式的一种。将实现和抽象进行解耦,起到一个低偶高内聚,使抽象和实现都可以独立的变化。桥梁模式可以干什么?主要是解决继承方面存在缺陷而设计,一个类想要拥有另外一.原创 2020-06-02 07:54:01 · 249 阅读 · 0 评论 -
设计模式-适配器模式
上文(抽象工厂模式+单例):https://blog.csdn.net/qq_16498553/article/details/106450987背景各国的电压大致分为110V和220V, 一部手机或一部电脑不能直接使用这么高的电压的,需要通过变压器才能直接使用。要不然一插就炸了...适配器模式是什么?适配器模式也叫变压器模式,属于结构型模式,用于两个不同的对象互相转换,将原本不能一起工作或各自单个的对象可以一起工作,该模式在实际开发过程中非常常用;模式可以干什么?适配器主要用于将两原创 2020-06-01 23:19:58 · 162 阅读 · 0 评论 -
设计模式-抽象工厂模式+单例
上一篇文章说到工厂模式:https://blog.csdn.net/qq_16498553/article/details/106436874抽象工厂是什么?抽象工厂是创建型模式的一种,也叫超级工厂。抽象工厂是普通工厂的升级版,是一个专门生产工厂用的抽象工厂。抽象工厂可以干嘛?主要解决一个在单一工厂的时候,想要创造多个工厂很繁琐和臃肿并且耦合度也很高。比如:生产小米手机的不同版本8、9、10肯定是不同流水线,如果按照原来的工厂模式,要再造一个工厂再来生产,这样的话就费时费力,并且很繁琐,将.原创 2020-05-31 08:57:17 · 493 阅读 · 0 评论 -
设计模式-工厂模式
工厂模式是什么?工厂模式是创建型模式的一种,是通过一个工厂的方式直接生产出不同的产品,比如你需要一部手机,那具体我直接给苹果或者华为,你不需要关注具体是怎么生产的,只要拿结果(手机)就可以了。工厂模式可以干嘛?在日常开发过程中,比如像有些只关注结果,而不需要去关注一些过程的东西大部分可以直接用工厂模式,对内很好的保护了接口的隐私,使用知不需要关心怎么实现,只需要关心结果。比如:你提供一个支付接口,但其实支付有很多种比如有微信、支付宝、银联等,你只需要用户需要什么接口,传进来的标识,你通过一个统一原创 2020-05-30 11:31:29 · 163 阅读 · 0 评论 -
设计模式-建造者模式
建造者模式是什么?建造者模式属于创建型模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。用于专门创建个性化的对象。区别于工厂,每个工厂生产出来的产品都是一样的,而建造者可以根据用户的不同需要,生产不同的产品。其中包含角色:Builder:抽象建造者ConcreteBuilder:具体建造者Director:指挥者/监工Product:产品建造者模式可以干嘛?主要用来创建个性化的产品,主要解决同一样的产品输出不同的个性化要求。比如:你需要一台台式电原创 2020-05-29 16:47:59 · 211 阅读 · 0 评论 -
设计模式-原型模式
原型模式是什么?原型模式属于创建型模式,是用于创建重复的对象,同时又能保证性能。是一种创建对象的最佳方式。原型模式可以干嘛?原型模式是通过一个原来已存在的对象进行拷贝,然后生成一个新的对象。在日常开发过程中需要进行拷贝。就比如现在流行的病毒其实就是自己本身的一个拷贝,而不断繁衍的。优点:性能高:由于底层用二进制进行拷贝绕开构造函数的约束缺点: 必须实现Cloneable接口类图源码下载:https://gitee.com...原创 2020-05-28 23:39:41 · 162 阅读 · 0 评论 -
设计模式-单例模式
单列模式是什么?单列模式是创建型模式的一种,同样一个对象(实例)在内存中只会有一份,只并只有一个全局的访问点。单列分为好多种实现,其中有线程安全和线程不安全,大类有懒汉和饿汉;单列模式可以干嘛?可以解决一个对象重复的创建和销毁,减少内存的开销,保存只在内存只有一份。就比如:一个学校一般只有一个正校长;代码地址:https://gitee.com/hong99/design-model/issues/I1IMES代码实现懒汉:都是被别人推着才去做的,这样线程不安全(也有安全)饿汉: 先创建对原创 2020-05-27 21:16:12 · 591 阅读 · 0 评论 -
设计模式-六大原则
1、开闭原则(Open Close Principle)开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。2、里氏代换原则(Liskov Substitution Principle)里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有原创 2020-05-27 20:27:06 · 151 阅读 · 1 评论