设计模式
阿珍爱上了阿强?
知识都是互通的
展开
-
设计模式的艺术 抽象工厂模式
不懂使用为学过,说出用途,绘制结构为了解,不会灵活使用基本等于没学。前言工厂方法模式引入了工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销,此时,可以考虑一些相关产品组成的产品族,由同一工厂来统一生产,这就是抽象工厂模式的基本思想.抽象工厂模式的定义 Abstract Fac...原创 2018-09-14 09:51:40 · 11685 阅读 · 0 评论 -
设计模式的艺术,6种创建型模式的联系
前言 每几种模式之间都有一定的联系,从中发现它们的相同点和不同点,研究发生改变的节点,这就是本篇博客所要说明的创建型设计模式之间的联系。它们包括:简单工厂模式、单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。 创建型模式的基本理解 创建型模式抽象了实例化过程。它们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类...原创 2018-09-11 14:28:08 · 11676 阅读 · 0 评论 -
设计模式的艺术 行为型模式之中介者模式
前言微信有一个群聊功能,群聊中的信息你不需要加别人为好友就可以接收的到信息,因为群的机制,极大的减少了用户之间的两两通信,在软件设计中,也有类似于微信用户之间的关系,我们也可以借鉴微信群的模式,来降低对象与对象之间的交互,使得系统的耦合度大大降低什么是中介者模式 Mediator Pattern用一个中介者对象来封装一系列的对象交互,中介者使得对象不需要显式的互相引用,从而使得其耦合松...原创 2018-10-23 08:34:55 · 11481 阅读 · 1 评论 -
设计模式的艺术 行为型模式之备忘录模式
前言每个人都会有后悔的时候,可是人生没有后悔药,做过的事情无法再去后悔,软件设计中却是有这么一种后悔机制,叫做备忘录模式,它就是软件中的"后悔药"什么是备忘录模式 Memento Pattern在不破坏封装的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,这样可以将对象恢复到原先保存的状态,它是一种对象行为型模式,有个别名叫做Token备忘录模式的优点(1)、它提供...原创 2018-10-24 10:51:48 · 11279 阅读 · 0 评论 -
设计模式的艺术 行为型模式之观察者模式
前言红灯停,绿灯行,在日常的交通中,每每遇到红灯,司机总是要在路口进行等待,等到绿灯才能通过,这个时候司机就扮演了一个观察者的角色,随着灯的颜色的变化,司机的行为也跟着变化,在软件系统中,有些对象之间也存在类似交通信号灯和汽车之间的关系,一个对象的的行为状态改变导致了其他对象的状态或行为也发生变化,他们之间将进行联动,正所谓"触一而牵百发",为了更好的描述对象之间存在着这种一对多的联动,观察者...原创 2018-10-25 14:09:50 · 11194 阅读 · 0 评论 -
设计模式的艺术 行为型模式之解释器模式
前言目前计算器编程语言有好几百种,但是有时候人们还是希望能用一些简单的语言表达实现一些特定的操作,比如输入一个文件,它就可以按照预定的格式进行解释,从而实现相应的功能。在现实的开发中,这些简单的自定义语言可以通过现有的编程语言来设计,如果所基于的编程语言是面向对象语言,此时可以使用解释器模式来实现自定义语言什么是解释器模式 Interpreter Pattern定义一个语言的方法,...原创 2018-10-21 20:58:09 · 11556 阅读 · 0 评论 -
设计模式的艺术 行为型模式之迭代器模式
前言现在的电视机都配置了一个遥控器,用户可以通过遥控器去选择上一个或者下一个台,我们只需要知道如何使用这个遥控器,而无须关注电视是怎么把电视频道放入其中的,在软件实际的开发中,也有这么一种类,它储存着多个成员对象,这些类通常称为聚合类,对应的对象称为聚合对象。为了方便操作这些聚合对象,同时可以很灵活的为聚合对象增加不同的遍历的方法,也需要类似电视机遥控器一样的角色,可以访问对象的同时又不暴露它...原创 2018-10-22 17:08:47 · 11558 阅读 · 0 评论 -
设计模式之间的关系(简单来说)
总体来说设计模式分为三大类:1、创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。2、结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。3、行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。1、创建型模式软件设计的过...原创 2018-10-31 09:20:17 · 12180 阅读 · 0 评论 -
设计模式的艺术 行为型模式之访问者模式
前言在公司上班,一般会有兼职或全职的员工,他们都发工资,上同样的班,但是工资待遇是有区别的,财务部和人事部过来调查处理的手法也不是一样的,虽然都是一样的计算工资待遇,在软件开发中存在着这样的一种情况,我们需要处理着像员工一样的集合,集合中的具体对象是不一样的,去访问时处理的手段也不一样,软件设计模式中有这么一样设计模式可以满足上述要求,其动机就是以不同的方式去操作复杂对象结构什么是访问者模...原创 2018-10-29 08:25:48 · 10066 阅读 · 0 评论 -
设计模式的艺术 行为型模式之策略模式
前言条条大路通罗马,很多时候为了达到目标可供选择的路径不止一条,在软件开发中也会存在这样的情况,为了某一个功能有多条途径,每一条途径对应一种算法,为了灵活的选择解决途径,策略模式就应运而生了什么是策略模式 Strategy Pattern定义一系列算法类,将每一个算法封装起来,并让它们可以相互替换,策略模式让算法独立于使用它的客户而变化,策略模式也被称之为政策模式,策略模式是一种对象行...原创 2018-10-26 13:46:36 · 9952 阅读 · 0 评论 -
设计模式的艺术 行为型模式之模板方法模式
前言生活中有许多事情可以理解成分步骤执行的东西,比如请客吃饭,无论吃什么,一般都包含着点单,吃东西,买单几个步骤,不论吃面还是吃大餐,其他步骤不会变,最多变变点单,在软件开发中,也会有类似的情况出现,我们可以有个点单的基类,然后子类里面具体实现是吃面还是点大餐,这就是模板方法模式,这种模式利用了面向对象的多态性,提高了代码的复用性什么是模板方法模式 Template Method Pat...原创 2018-10-28 09:43:20 · 9895 阅读 · 0 评论 -
Java开发中的23种设计模式详解
总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式和线程池...原创 2018-11-02 08:23:24 · 10233 阅读 · 0 评论 -
设计模式的艺术 行为型模式之命令模式
前言装修新房子的最后几道工序之一是安装插座和开关,通过开关可以控制一些电器的打开和关闭,例如电灯或者排气扇,但是购买开关时其实并不知道它能够控制什么具体的电器。在软件设计中,也存在着这样的关系,请求发送者和接收者对象,为了降低之间的耦合度,我们会将两者进行解耦,会在两者之间引入了新的命令对象,我们将它成为命令模式什么是命令模式 Command Pattern将一个请求封装为一个对象,从...原创 2018-10-16 17:06:11 · 11427 阅读 · 0 评论 -
设计模式的艺术 结构性模式之享元模式
前言知道围棋的都知道围棋有两种颜色的棋子,黑色和白色,不同的地方就在于他们所放置的位置不同,大体是一样的,所以厂家生产的时候也就是批量的进行生产,反正棋子放哪他们并不需要操心,在计算机中也会存在着很多相似的对象,如果相同的对象太多将导致系统运行代价过高,内存属于计算机稀缺资源,不能随便浪费,是否有一种技术能够节约内存使用空间呢?实现对这些相同或者相似的对象的共同访问呢?答案是肯定的,这种技术就...原创 2018-10-09 17:15:56 · 11284 阅读 · 0 评论 -
设计模式的艺术 工厂方法模式
不懂使用为学过,说出用途,绘制结构为了解,不会灵活使用基本等于没学。前言工厂方法模式是简单工厂模式的延伸,它继承了简单工厂方法模式的优点,同时还弥补了简单工厂方法模式的不足,工厂方法模式是使用频率最高的设计模式之一,是很多开源框架API类库的核心模式工厂方法模式的定义(Factory Method Pattern)定义一个用户创建对象的接口,让子类决定将哪一个类实例化,工厂方法...原创 2018-09-13 15:31:51 · 12100 阅读 · 0 评论 -
23种经典的设计模式之创建型模式之单例模式
学习设计模式最重要的是什么?我认为有一下四点,一、明白该设计模式是为了解决何种问题而提出来的二、设计模式的优缺点三、何种场地才适合去使用他,做到规避利害四、如何去实现一个设计模式(知道如何去书写)这几天又回顾了一次设计模式中的单例模式,对其有了一个更深的理解,现在我们来谈谈单例模式为什么需要单例模式? 我们初始学面向对象编程的时候,都是用new开始生成对象,哪里...原创 2018-09-10 15:07:36 · 11502 阅读 · 0 评论 -
设计模式的艺术 创建型模式之建造者模式
不懂使用为学过,说出用途,绘制结构为了解,不会灵活使用基本等于没学。前言没有人想买汽车的时候只会单独买一个轮胎或者一个方向盘,大家买的都是组装好的一辆完整的汽车,如何将这些部件组装成一个完整的汽车并返回给客户,这就是建造者模式需要解决的问题。建造者模式又被称之为生成器模式,它是一种较为复杂、使用频率也相对其他创建型模式较低的一种模式,建造者模式为客户端返回的不是一个简单的产品,而是一个由多...原创 2018-09-18 19:45:24 · 11454 阅读 · 0 评论 -
设计模式的艺术 创建型模式之原型模式
不懂使用为学过,说出用途,绘制结构为了解,不会灵活使用基本等于没学。前言西游记中孙悟空拔毛出分身的故事大家都知道,孙悟空根据了自己的形象创建了分身,克隆出了一个和自己几乎一模一样的身外身,设计模式中也有一个类似的模式,叫做克隆模式,它是属于创建型模式的一种模式什么是原型模式 Prototype Pattern使用原型实例指定创建对象的种类,并且通过克隆这些原型创建新的对象,这就是...原创 2018-09-15 16:34:20 · 11573 阅读 · 0 评论 -
设计模式的艺术 结构型模式之适配器模式
不懂使用为学过,说出用途,绘制结构为了解,不会灵活使用基本等于没学。前言有的笔记本工作电压是20V,而中国家庭用电的电压是220V,如何让20V的笔记本在220V的电压下工作,答案就是进入一个电源适配器,这样才能兼容,在软件开发中也有这种不兼容的情况,这时候也可以像电源适配器的方法一样来使用一个扮演着适配器角色的类来协调这些不兼容的结构,这就是适配器模式什么是适配器模式 Adapte...原创 2018-09-26 10:54:42 · 11691 阅读 · 0 评论 -
设计模式的艺术 结构性模式之桥接模式
不懂使用为学过,说出用途,绘制结构为了解,不会灵活使用基本等于没学。前言了解过画画的人都知道,颜色有很多种,纸也有很多种,但是他们直接怎么连接起来呢??通过笔,来使其灵活生动的转换起来,桥接模式也是这个原理,是一种对象结构型模式什么是桥接模式 Bridge Pattern将抽象部分与其实现部分分离,使他们都可以独立的变化,它是一种对象结构型模式,又被称为柄体模式或者接口模式桥...原创 2018-09-28 08:31:38 · 11507 阅读 · 0 评论 -
设计模式的艺术 结构性模式之组合模式
不懂使用为学过,说出用途,绘制结构为了解,不会灵活使用基本等于没学。前言树形结构在软件中随处可见,比如系统中的目录结构,应用软件中的菜单,如何运用面向对象的方式来处理这种树形结构是组合模式需要解决的问题。组合模式通过一种巧妙的设计方案来使得用户可以一致性的处理整个树形结构或者树形结构的一部分,也可以一致的处理树形结构中的叶子节点。什么是组合模式 Composite Pattern...原创 2018-09-29 14:10:37 · 11529 阅读 · 0 评论 -
设计模式的艺术 结构性模式之代理模式
前言现实中有些东西想要但是在别的国家想买但是过去买的成本太大,所以有中介这种行业应运而生,相对于自己去买的话比较便宜,也节省时间,在软件设计中,也存在着这么一种模式,客户端不能直接访问某个对象,此时可以通过一个称之为代理的第三章来实现间接访问,该方案对应的设计模式被称之为代理模式。什么是代理模式 Proxy Pattern给某个对象提供一个代理,并由代理对象控制对原对象的引用,代理模式...原创 2018-10-13 16:20:25 · 11654 阅读 · 0 评论 -
设计模式的艺术 结构性模式之装饰模式
不懂使用为学过,说出用途,绘制结构为了解,不会灵活使用基本等于没学。前言我们大多数时候买的新房都是毛坯房,想要入住的话无疑需要进行一次装修自己才能高高兴兴的入住,虽然装修了,但是并没有改变房子的本质,但这样会让你更乐于到房子里面去入住,在软件设计中,也有这么一种技术可以对已有的对象的功能进行扩展,以此来获得更加符合用户需求的对象,使得对象具有更加强大的功能,这是一种被称之为装饰模式的设计模...原创 2018-10-07 20:30:39 · 9814 阅读 · 0 评论 -
设计模式的艺术 结构性模式之外观模式
前言去饭馆吃饭,自己只需要点个菜,然后自然后厨做好了之后会有服务员给你端上来,真正来讲,自己只需要告诉服务员自己要吃的菜就行,不需要与原材料和厨子之间发生任何的交互,在软件设计思想中也有这样的场景,为了完成一个复杂的功能,一个类可能需要与多个其他业务类发生交互,而这些交互类经常会作为一个整体出现,因为涉及的业务类比较多,导致使用代码时比较复杂,所以这时候就需要一个类似于服务员的外观类,由他为这...原创 2018-10-08 11:14:26 · 11697 阅读 · 0 评论 -
设计模式的艺术 行为型模式之职责链模式
前言几乎所有的国人都打过斗地主,规则很简单,上家出牌,下家接牌,要不起则转给下一家,一个循环下来,如果要不起则最初的出牌者继续出牌,在这个过程中,牌作为一个请求沿着一条链在传递,每一个纸牌的玩家都可以处理该请求,在设计模式中,也有一种专门用于处理这种请求链方式的传递模式,我们把它称之为职责链模式什么是职责链模式 Chain of Responsibility Pattern避免将请求发...原创 2018-10-15 10:53:12 · 11565 阅读 · 0 评论 -
设计模式的艺术之简单工厂模式
不懂使用为学过,说出用途,绘制结构为了解,不会灵活使用基本等于没学。前言工厂模式是最为常用的一种创建型设计模式,通常说的工厂模式是工厂方法模式,它也是频繁使用的最高的工厂模式,现在我来介绍下简单工厂模式,简单工厂模式算的上是工厂方法模式的小老弟,它不属于GOF23中设计模式,但是在软件开发中应用也比较频繁,学会了它,其他的工厂模式也算是入了门什么是简单工厂模式工厂模式通常用...原创 2018-09-12 20:28:49 · 11458 阅读 · 0 评论