设计模式
七哥带你学编程
一个写文章也喜欢拍视频的程序员。IT咨询到微信公众号:“七哥聊编程” 直接私信即可。
展开
-
设计模式系列汇总
写在前面这是我们学习设计模式的最后一章了,今天没有具体的设计模式讲解,而是针对于前面我们学习的常用的设计模式的总结。我们要知道,现实开发工作中,情况要复杂的多,往往可能要组合多种模式来解决一个普遍的问题,希望这一篇文章可以指引你的方向 。。。设计模式系列文章目录《据说是程序员工作中用到的最多的模式:策略模式解析》《暗中等待:观察者模式解析》《穿了马甲你就牛逼了:装饰者模式解析》《工厂模式-简单工厂、工厂方法、抽象工厂解析》《单例模式的3种经典实现》《常用设计模式之命令模式解析》《神头鬼脸之适配器模原创 2020-08-09 11:22:23 · 260 阅读 · 0 评论 -
代理模式解析,静态代理、动态代理一文全都告诉你
Proxy Pattern经过两个月的学习,我们的设计模式系列学习也将近到了尾声。不过设计模式这东西一时半会肯定是掌握不下来的,需要我们在后续的工作中持续的去练习。有了这方面的思维,剩下的就是靠自己刻意训练了。今天带来的是代理模式,Proxy Pattern。这个模式想必大家都不陌生,因为 Java 程序员面试一般都会问的 Spring Aop 经过会说到动态代理,这其实就是代理模式的一种实现。 不过大部分人可能都没有系统的去了解过,本文的目的就是彻底搞清楚代理模式的小99。阅读之前也思考关于代理模式原创 2020-08-09 10:41:36 · 473 阅读 · 0 评论 -
设计模式系列:状态模式解析
State Pattern这篇文章,我们来聊聊状态模式,大家可以好好看看。我觉得这个模式在我们平时工作中的使用场景还是挺多的,而且很有意思。老规矩我们还是先抛出文章的整体结构,大家带着目的阅读,效果也会更好。同时也能决定是否感兴趣要不要继续看下去。文章脉络APP抽奖活动问题状态模式介绍以及类图状态模式如何解决APP抽奖活动问题状态模式在实际项目-借贷平台的应用解析注意事项和细节APP抽奖活动问题这里给出一个需求,大家先思考下如果让你来实现设计,你会如何实现?用户每次抽奖前要扣除50积分,中原创 2020-08-09 09:56:12 · 337 阅读 · 0 评论 -
设计模式系列11-组合模式解析
COMPOSITE今天为大家带来死磕设计模式系列的第11个模式,属于结构型模式的--组合模式。带着问题出发什么是组合模式?组合模式解决了什么问题?适用场景是什么?定义将对象组合成树形结构以表示“部分-整体”的层次结构。Composite 使得用户对单个对象和组合对象的使用具有一致性。如果业务中需要定义复杂的数据结构,可以用树形嵌套来表示,那么组合模式就有用武之地了。动机比如在绘图编辑器中,用户可以使用简单的组件创建复杂的图表。用户可以组合多个简单组件以形成一些较大的组件,这些组件又可以原创 2020-08-07 20:30:52 · 229 阅读 · 0 评论 -
行为型模式:迭代器模式解析
ITERATOR今天是设计模式学习系列的第10篇,今天要学习的是 -- 迭代器模式。带着问题出发什么是迭代器模式?迭代器解决了什么问题?适用场景?定义迭代器模式 提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。问题一个聚合对象,如列表,数组,树型结构等,应该提供一种方法来让别人访问它的元素,而又不需要暴露内部结构。此外针对不同的需要,可能要以不同的方式遍历这个聚合对象。但是由于聚合对象内部结构不一样,遍历方式不一样,所以会对使用者造成很大的烦恼,因为要针对不同的聚原创 2020-07-28 23:59:25 · 993 阅读 · 0 评论 -
最有用的设计模式之一-模板方法
今天是设计模式学习系列的第9篇,为大家带来一个使用特别广的设计模式 -- 模板方法模式。从问题出发什么是模板方法模式?常说的钩子方法是什么?和模板方法的关联?模板方法模式和策略模式好像有点像,如何区分?JDK 中的具体体现?模式解析一如既往的为了方便理解,我们从一个日常开发中的例子出发。做保险系统的都知道,保险分为很多种类,比如:产险、寿险、养老险、健康险、车险等。 我们作为后台开发者在设计开发这些保险产品上线的时候,首先要分析下这几个险种购买流程的共同点?这些保险在产品购买时的流程如下(举个原创 2020-07-25 20:20:25 · 251 阅读 · 0 评论 -
设计模式之外观模式解析
今天是设计模式学习系列的第8篇--外观模式。开篇问题什么是外观模式?外观模式和适配器模式的区别?外观模式解析首先我们先看一个场景,我们平常肯定都是用银行的app,在注册时,都要经过实名认证这个步骤。但是实名这个功能它是非常复杂的,包括验密、上传证件、OCR识别、联网核查等不同的步骤。如果一个客户要使用实名这个功能如果要他一个个对接,那估计头都大了,对接是如此的复杂。 怎么办?接下来我们看看外观模式如何解决这团混乱,好让平台客户可以轻松的使用实名功能。有了外观模式,通过实现一个提供更合理接口的外原创 2020-07-25 19:55:58 · 294 阅读 · 0 评论 -
神头鬼脸之适配器模式
今天是设计模式学习系列的第7篇--适配器模式。开头三问?什么是适配器模式?什么是类的适配器模式、对象的适配器模式、接口的适配器模式?适配器模式和装饰者模式的区别?适配器模式的使用场景?带着这几个问题,开始我们今天的学习吧。适配器模式解析说到适配器模式,其实顾名思义不难理解,我举一个例子。相信很多朋友都有去过香港买东西,比如我曾经去香港买了一个 ipad air,但是呢,港版的它的充电器插头和我们大陆的插座是不适配的。但是我已经买回来了,这个插头可是不能直接充电的,那怎么办呢?这时候我去淘宝原创 2020-07-18 22:31:05 · 335 阅读 · 0 评论 -
常用设计模式之命令模式解析
今天是设计模式学习系列的第6篇,命令模式!带着问题出发什么是命令模式?命令模式的好处是什么?命令模式的使用场景?命令模式解析简单的来说,命令模式就是 将 请求的调用者 和 请求的接收执行者 分隔开来。举一个生活中常见的例子,比如你去餐馆点餐,你选好菜品下单,这时候服务员过来,拿着菜单啥都不用管,直接把菜单给厨房就好了,厨房做好菜,服务员返回给顾客。在这个例子中,服务员就是请求的调用者,她不用管具体的订单是什么,只知道拿到订单就给厨师(调用执行方法),而厨师就是请求的接收执行者,顾客就作为命令创原创 2020-07-18 22:12:53 · 337 阅读 · 0 评论 -
单例模式的3种经典实现
今天来学习单例模式,这个模式比较简单,但是应用确实挺广的,属于入门级的设计模式。带着问题出发什么是单例模式?单例模式的几种实现?单例模式介绍单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。省去了new操作符,降低了系统内存的使用频率,减轻GC压力。其实概念很简单,即:「确保一个类只有一个实例,并提供全局访问点。」实现饿汉单例p原创 2020-07-12 09:59:13 · 358 阅读 · 0 评论 -
工厂模式-简单工厂、工厂方法、抽象工厂解析
今天来学习一个使用非常广泛、也非常有威力的设计模式--「工厂模式」,主要核心还是在于帮助我们针对抽象编程,而不是针对具体类编程。从问题出发简单工厂是什么?是不是一个设计模式?如果使用?工厂方法是什么?抽象了什么?抽象工厂是什么?抽象了什么?工厂方法和抽象工厂的区别?简单工厂模式简单工厂不算是一个真正的设计模式,而更像是一种我们的编程习惯,但是在平时编码中这不失为一个简单的方法,可以将客户程序从具体类解耦。介绍工厂类拥有一个工厂方法(create),接受了一个参数,通过不同的参数实例化不同的产品原创 2020-07-12 09:47:46 · 258 阅读 · 0 评论 -
穿了马甲你就牛逼了:装饰者模式解析
❝本文是设计模式系列的第三篇文章,今天主要学习装饰者模式。❞不知道大家没有有这样一种感觉,在看书学习时,感觉都看懂了,可是过一段时间就忘,因此我们从开头就先问自己几个问题,过一段时间就回过头了复习下这几个问题,从而巩固学到的知识,在你的大脑中将这些知识点串起来。 希望能不断反复的思考,将点成线,最终形成知识块,消化掉它。带着问题学习什么是装饰者模式?什么场景下需要使用装饰者模式?如何实现装饰者模式?常用框架或源码中有哪些案例可以体现?装饰者模式的概念我们先来看看装饰者模式的说明:❝「装饰原创 2020-06-26 14:23:23 · 364 阅读 · 0 评论 -
暗中等待:观察者模式解析
设计模式想必大家都懂一些,不仅能体现平时设计写代码的基本功,而且也是面试时的高频考点。今天来讲解学习下 观察者模式。 本文在讲解具体模式的同时,也会列举 jdk 以及 常用框架中使用到的地方,帮助大家加深理解。设计模式的学习,我的建议是,首先弄懂它的含义,和前人已经总结沉淀下来的设计原则。将这些概念记在心里,当工作中碰见对应的需求开发工作时,按照原则去认真思考、设计实现,最终符合要求的结果往往就已经是一些设计模式的具体实现了。场景举例首先列出一个实战场景,用这个场景来讲述观察者模式是什么,以及为什.原创 2020-06-23 12:47:44 · 290 阅读 · 0 评论 -
据说是程序员工作中用到的最多的模式:策略模式解析
这是从零学习设计模式的第一篇文章,也算是入门篇吧。大家都知道设计模式很重要,掌握设计模式是一个高级开发乃至架构师都必须要具备的技能。 但是不知道有没有这样的感觉,每次看设计模式的概念都差不多能看懂,但是就是不会用,而且不能够识别一些优秀的代码具体是运用了什么设计模式? 最终的结果就是,慢慢的忘记,脑海中的设计模式只是一个很大很虚的概念。我目前就属于这种状态,为了能够提高自己的编码设计能力,在工作中设计出有弹性,好维护,能更好的应付业务变化的代码,准备认真学习一边设计模式。其实大学期间就断断续续看过《H原创 2020-06-20 12:57:31 · 609 阅读 · 0 评论