
【设计模式】
文章平均质量分 93
空默寒
这个作者很懒,什么都没留下…
展开
-
设计模式学习笔记(四)-单例模式
第一部分:单例模式的内容 单例模式:类只能有一个实例。 类的特点:1、私有构造器;2、内部构造实例对象;3、对外提供获取唯一实例的public方法。 常见的单例模式实现有五种形式: 1、饿汉式。 2、懒汉式。 3、双重检查锁式。 4、静态内部类式。 5、枚举式。 以下分别介绍: 一、饿汉式 饿汉式单例特点:线程安全,不能延时加载,效率较高。 1 pub...转载 2018-04-09 09:47:06 · 263 阅读 · 0 评论 -
设计模式学习笔记(十四)-复合模式
一.什么是复合模式?在形式上,复合模式确实是多个模式的组合,但满足了这一条并不一定是复合模式,注意它的定义:将多个模式结合起来形成一个“框架”,以解决一般性问题一提到“框架”,可能最容易联想到的就是MVC吧,不过MVC确实是一个经典的复合模式二.MVC与复合模式Model,View,Controller各自的职责:这里不得不强调一下控制逻辑与应用逻辑(算法逻辑)的区别:所谓控制逻辑,就是判断在当前...转载 2018-06-14 08:56:47 · 292 阅读 · 0 评论 -
设计模式学习笔记(十五)-桥接模式
处理多维度变化在正式介绍桥接模式之前,我先跟大家谈谈两种常见文具的区别,它们是毛笔和蜡笔。假如我们需要大中小3种型号的画笔,能够绘制12种不同的颜色,如果使用蜡笔,需要准备3×12 = 36支,但如果使用毛笔的话,只需要提供3种型号的毛笔,外加12个颜料盒即可,涉及到的对象个数仅为 3 + 12 = 15,远小于36,却能实现与36支蜡笔同样的功能。如果增加一种新型号的画笔,并且也需要具有12种颜...转载 2018-06-14 08:59:37 · 736 阅读 · 0 评论 -
设计模式学习笔记(十六)-生成器模式
概念: 生成器模式也称之为建造者模式。生成器模式的意图在于将一个复杂的构建与其表示相分离,构建与产品分离。UML: Ibuild接口清晰地反映了创建产品Product的流程。生成器模式涉及4个关键角色:产品(Product),抽象生成器(IBuilder),具体生成器(Builder),指挥者(Director).产品(Product): 所要构建的复杂对象。抽象生成器(Builder):...转载 2018-06-14 09:01:06 · 400 阅读 · 0 评论 -
设计模式学习笔记(十七)-责任链模式
“一对二”,“过”,“过”……这声音熟悉吗?你会想到什么?对!纸牌。在类似“斗地主”这样的纸牌游戏中,某人出牌给他的下家,下家看看手中的牌,如果要不起上家的牌则将出牌请求再转发给他的下家,其下家再进行判断。一个循环下来,如果其他人都要不起该牌,则最初的出牌者可以打出新的牌。在这个过程中,牌作为一个请求沿着一条链在传递,每一位纸牌的玩家都可以处理该请求。在设计模式中,我们也有一种专门用于处理这种请求...转载 2018-06-20 10:37:54 · 420 阅读 · 0 评论 -
设计模式学习笔记(十八)-蝇量模式
JAVA设计模式:蝇量模式声明:转载请说明来源:http://www.cnblogs.com/pony1223/p/7554686.html一、引出蝇量模式现在假设有一个项目,这个项目是为公园设计一个景观的部署,那么这个时候就会有一个问题出现,那么就是避免不了的会有一个树的类,树会很多,那么这个时候如果按照传统的方案来合计,我们会这样的设计: 然后,我们会建立很多树的对象,属性的含义分别为:x坐标...转载 2018-06-20 11:27:12 · 321 阅读 · 0 评论 -
设计模式学习笔记(十九)-解释器模式
定义:给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。类型:行为类模式类图:解释器模式是一个比较少用的模式,本人之前也没有用过这个模式。下面我们就来一起看一下解释器模式。 解释器模式的结构抽象解释器:声明一个所有具体表达式都要实现的抽象接口(或者抽象类),接口中主要是一个interpret()方法,称为解释操作。具体解释任务由它的各个实现类来完成,具体的...转载 2018-06-27 10:37:21 · 194 阅读 · 0 评论 -
设计模式学习笔记(二十)-中介者模式
中介者模式(Mediator)的定义用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式(Mediator)的适用性1.一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。2.一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象。3.想定制一个分布在多个类中的行为,但又不想...转载 2018-06-28 09:13:01 · 307 阅读 · 0 评论 -
设计模式学习笔记(二十一)-备忘录模式
一、概述在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。二、适用性1.必须保存一个对象在某一个时刻的(部分)状态,这样以后需要时它才能恢复到先前的状态。 2.如果一个用接口来让其它对象直接得到这些状态,将会暴露对象的实现细节并破坏对象的封装性。三、参与者1.Memento 备忘录存储原发器对象的内部状态。2.Originator...转载 2018-06-28 09:16:08 · 254 阅读 · 0 评论 -
设计模式学习笔记(二十二)-原型模式
原型(Prototype)模式是一种对象创建型模式,他采取复制原型对象的方法来创建对象的实例。使用原型模式创建的实例,具有与原型一样的数据。 原型模式的特点: 1、由原型对象自身创建目标对象。也就是说,对象创建这一动作发自原型对象本身。 2、目标对象是原型对象的一个克隆。也就是说,通过原型模式创建的对象,不仅仅与原型对象具有相同的结构,还与原型对象具有相同的值。 3、根据对象克隆深度层次的...转载 2018-06-28 09:17:38 · 201 阅读 · 0 评论 -
设计模式学习笔记(二十三)-访问者模式
基本概念Visitor封装一些作用于数据结构中的各元素的操作,不同的操作可以借助新的visitor实现,降低了操作间的耦合性访问者可以将数据结构和对数据的操作解耦,使得增加对数据结构的操作不需要取修改数据结构,也不必去修改原有的操作,而执行时再定义新的Visitor时闲着就行了(在操作添加上易拓展)模式中角色分工Visitor:抽象访问者,在重载的visit函数中声明访问者可以访问的对象。Conc...转载 2018-06-28 09:19:22 · 286 阅读 · 0 评论 -
设计模式学习笔记(十三)-代理模式
什么是代理模式? 代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。举例说明,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用。应用场景举例: 通过上面的代理模式描述我们可以知道,其目的就是为了控制对象引用,生活场景中我们以买...转载 2018-06-14 08:55:37 · 249 阅读 · 0 评论 -
设计模式学习笔记(十二)-状态模式
状态模式(State)的定义定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类状态模式(State)适用性 1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。 2.一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。 这...转载 2018-06-14 08:54:43 · 329 阅读 · 0 评论 -
设计模式学习笔记(一)-策略模式
前言:设计模式是人们在面对同类型软件工程设计问题所总结出的一些有用经验。模式不是代码,而是某类问题的通用设计解决方案。策略模式:分别封装行为接口,实现算法族,超类里放行为接口对象,在子类里具体设定行为对象。原则就是:分离变化部分,封装接口,基于接口编程各种功能。此模式让行为算法的变化独立于算法的使用者1.1概述 方法是类中最重要的组成部分,一个方法的方法体由一系列语句构成,也就是说一个方法...转载 2018-04-04 14:49:19 · 301 阅读 · 0 评论 -
设计模式学习笔记(五)-工厂模式
1.工厂模式简介工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。2.工厂模式分类工厂模式主要是为创建对象提供了接口。工厂模式按照《Java与模式》中的提法分为三类:1. 简单工厂模式(Simple ...原创 2018-04-11 23:48:50 · 288 阅读 · 0 评论 -
设计模式学习笔记(二)-观察者模式
1、初步认识观察者模式的定义: 在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。大白话: 其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。2、这个模式的结构图3、可以看到,该模式包含四个角色抽象被观察者角色:也就是一个抽象主题,它把所有对观察者对象的引用保存在一个集合中,每个主题都可以有任意数量的观察者...转载 2018-04-05 22:05:01 · 214 阅读 · 0 评论 -
设计模式学习笔记(三)-装饰者模式
定义装饰者模式:在不改变原类文件以及不使用继承的情况下,动态地将责任附加到对象上,从而实现动态拓展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。设计原则要使用装饰者模式,需要满足以下设计原则: 1、多用组合,少用继承 2、开放-关闭原则:类应该对拓展开放,对修改关闭UML类图我们先来看看装饰者模式的类图,再来详细讲述: 由上自下: 1、Component是基类。通常是一个抽...转载 2018-04-06 23:14:58 · 272 阅读 · 0 评论 -
设计模式学习笔记(六)-命令模式
1.1 如何开机估计有些朋友看到这个标题会非常奇怪,电脑装配好了,如何开机?不就是按下启动按钮就可以了吗?难道还有什么玄机不成。对于使用电脑的客户——就是我们来说,开机确实很简单,按下启动按钮,然后耐心等待就可以了。但是当我们按下启动按钮过后呢?谁来处理?如何处理?都经历了怎样的过程,才让电脑真正的启动起来,供我们使用。先一起来简单的认识一下电脑的启动过程,了解一下即可。·当我们按下启动按钮,电...转载 2018-06-11 11:39:15 · 300 阅读 · 0 评论 -
设计模式学习笔记(七)-适配器模式
概述适配器模式是结构型设计模式之一,其在不修改原来两个模块代码的情况下,将两个不兼容的类融合在一起,有点像粘合剂,通过转换使得他们能够协作起来, 符合了开闭原则.关于适配器模式扩展阅读: 适配器模式原理及实例介绍定义适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配无法在一起工作的两个类可以在一起工作.使用场景系统需要使用现有的类,而此类接口不符合系统的需要,即接口不兼...原创 2018-06-11 14:36:16 · 365 阅读 · 0 评论 -
设计模式学习笔记(八)-外观模式
外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。 1. 外观模式概述 不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别,如果是自己泡茶需要自行准备茶叶、茶具和开水,如图1(A)所示,而去茶馆喝茶,最简单的方式就是跟茶馆服务员说想要一杯什么样的茶,是铁...转载 2018-06-12 21:01:44 · 400 阅读 · 0 评论 -
设计模式学习笔记(九)-模板模式
模板模式(Template ): 模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。模式中的角色 抽象类(AbstractClass):实现了模板方法,定义了算法的骨架。 具体类(Concr...原创 2018-06-12 21:06:19 · 223 阅读 · 0 评论 -
设计模式学习笔记(十)-迭代器模式
迭代器模式定义迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。迭代器模式的角色构成(1)迭代器角色(Iterator):定义遍历元素所需要的方法,一般来说会有这么三个方法:取得下一个元素的方法next(),判断是否遍历结束的方法hasNext()),移出当前对象的方法remove(),(2)具体迭代器角色(Concrete Iterator...转载 2018-06-13 09:36:21 · 291 阅读 · 0 评论 -
设计模式学习笔记(十一)-组合模式
树形结构在软件中随处可见,例如操作系统中的目录结构、应用软件中的菜单、办公系统中的公司组织结构等等,如何运用面向对象的方式来处理这种树形结构是组合模式需要解决的问题,组合模式通过一种巧妙的设计方案使得用户可以一致性地处理整个树形结构或者树形结构的一部分,也可以一致性地处理树形结构中的叶子节点(不包含子节点的节点)和容器节点(包含子节点的节点)。下面将学习这种用于处理树形结构的组合模式。 11.1 ...转载 2018-06-13 09:43:26 · 409 阅读 · 0 评论 -
设计模式学习笔记(二十四)-最后的总结
一,什么是设计模式模式:在某些场景下,针对某类问题的某种通用解决方案场景:项目环境问题:约束条件,项目目标等解决方案:通用、可以复用的设计,解决约束,达到目标二,设计模式的三个分类创建型模式:对象实例化的模式,创建型模式解耦了对象的实例化过程结构型模式:把类或对象结合在一起形成更大的结构行为型模式:类和对象如何交互,及划分责任和算法创建型模式:简单工厂:一个工厂类根据传入的参量决定创建出哪一种产品...原创 2018-06-28 09:20:24 · 268 阅读 · 0 评论