
design pattern
winter2summer
与其欣赏别人的故事,不如演绎自己的人生!
展开
-
《JAVA与模式》之调停者模式
转载-http://www.cnblogs.com/java-my-life/archive/2012/06/20/2554024.html在阎宏博士的《JAVA与模式》一书中开头是这样描述调停者(Mediator)模式的: 调停者模式是对象的行为模式。调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之转载 2017-02-20 18:42:25 · 274 阅读 · 0 评论 -
生产者-消费者模式扫盲
概述今天打算来介绍一下“生产者/消费者模式”,这玩意儿在很多开发领域都能派上用场。由于该模式很重要,打算分几个帖子来介绍。今天这个帖子先来扫盲一把。如果你对这个模式已经比较了解,请跳过本扫盲帖,直接看下一个帖子(关于该模式的具体应用)。看到这里,可能有同学心中犯嘀咕了:在四人帮(GOF)的23种模式里面似乎没听说过这种嘛!其实GOF那经典的23种模式主要是基于OO的(从书名《Design转载 2017-03-06 11:24:38 · 355 阅读 · 0 评论 -
《JAVA与模式》之责任链模式
转载-http://www.cnblogs.com/java-my-life/archive/2012/05/28/2516865.html在阎宏博士的《JAVA与模式》一书中开头是这样描述责任链(Chain of Responsibility)模式的: 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直转载 2017-03-03 13:05:57 · 222 阅读 · 0 评论 -
桥接模式
当一个对象的行为表现与两个或多个因素有关,并且每个因素又可以分为不同的影响类型时。在正式介绍桥接模式之前,我先跟大家谈谈两种常见文具的区别,它们是毛笔和蜡笔。假如我们需要大中小3种型号的画笔,能够绘制12种不同的颜色,如果使用蜡笔,需要准备3×12 = 36支,但如果使用毛笔的话,只需要提供3种型号的毛笔,外加12个颜料盒即可,涉及到的对象个数仅为 3 + 12 = 15,远小于36,却能转载 2017-02-23 10:24:47 · 1298 阅读 · 0 评论 -
《JAVA与模式》之访问者模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述访问者(Visitor)模式的: 访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。分派的概念 变量被声明时的类型叫做变量的静态类型(Static Type),有些人又把静态类型叫做明显类型(Apparent Type);而变量转载 2017-03-11 21:59:13 · 255 阅读 · 0 评论 -
OO分析和设计基本原则
单一职责原则(SingleResponsibility Principle, SRP):一个类最好只负责一项单一的职责,只有一个引起它变化的原因面向对象的可复用设计,开-闭原则:一个软件实体应该对扩展开放,对修改关闭。(SoftWare entities should ben open for extension,but closed for modification)从开闭原则中可以看出面向原创 2017-02-26 09:39:55 · 596 阅读 · 0 评论 -
Java 设计模式 之 状态模式(State)
定义:允许一个对象的内部状态改变时改变它的行为。对象看起来似乎修改了它的类。本质:根据状态来分离和选择行为。状态:对象实例的属性值。行为:对象的功能,大多对应到方法上。状态模式的功能:分离状态的行为,通过维护状态的变化,来调用不同装态对应的不同功能。状态和行为是相关联的,可以描述为:状态决定行为。状态模式和策略模式的结构师完全一样的,但它们的目的、实转载 2017-04-10 10:00:54 · 269 阅读 · 0 评论 -
《JAVA与模式》之享元模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述享元(Flyweight)模式的: Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是因为这样更能反映模式的用意。享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。Java中的String类型 在JAVA语言中,String类型就是使用了享元模式。Str转载 2017-02-22 14:37:19 · 222 阅读 · 0 评论 -
备忘录模式
每个人都有过后悔的时候,但人生并无后悔药,有些错误一旦发生就无法再挽回,有些人一旦错过就不会再回来,有些话一旦说出口就不可能再收回,这就是人生。为了不后悔,凡事我们都需要三思而后行。说了这么多,大家可能已经晕了,不是在学设计模式吗?为什么弄出这么一堆人生感悟来,呵呵,别着急,本章将介绍一种让我们可以在软件中实现后悔机制的设计模式——备忘录模式,它是软件中的“后悔药”,是软件中的“月光宝盒”。话不多转载 2017-02-24 11:55:30 · 510 阅读 · 0 评论 -
请求的链式处理-职责链
“一对二”,“过”,“过”……这声音熟悉吗?你会想到什么?对!纸牌。在类似“斗地主”这样的纸牌游戏中,某人出牌给他的下家,下家看看手中的牌,如果要不起上家的牌则将出牌请求再转发给他的下家,其下家再进行判断。一个循环下来,如果其他人都要不起该牌,则最初的出牌者可以打出新的牌。在这个过程中,牌作为一个请求沿着一条链在传递,每一位纸牌的玩家都可以处理该请求。在设计模式中,我们也有一种专门用于处理这种请求转载 2017-03-17 10:40:23 · 397 阅读 · 0 评论 -
《JAVA与模式》之适配器模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述适配器(Adapter)模式的: 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹转载 2017-03-18 22:58:10 · 176 阅读 · 0 评论 -
《JAVA与模式》之合成模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述合成(Composite)模式的: 合成模式属于对象的结构模式,有时又叫做“部分——整体”模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。合成模式 合成模式把部分和整体的关系用树结构表示出来。合成模式使得客户端把一个个单独的成分对象和由它们复合而成的合成转载 2017-03-18 22:30:11 · 259 阅读 · 0 评论 -
《JAVA与模式》之原型模式
转载-http://www.cnblogs.com/java-my-life/archive/2012/04/11/2439387.html在阎宏博士的《JAVA与模式》一书中开头是这样描述原型(Prototype)模式的: 原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是选型模式的用意。原转载 2017-02-20 11:44:22 · 318 阅读 · 0 评论 -
《JAVA与模式》之观察者模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的: 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对转载 2017-03-17 16:16:24 · 203 阅读 · 0 评论 -
《JAVA与模式》之模板方法模式
给出一个顶级逻辑骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类实现。在阎宏博士的《JAVA与模式》一书中开头是这样描述模板方法(Template Method)模式的: 模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现转载 2017-03-17 21:23:24 · 208 阅读 · 0 评论 -
《JAVA与模式》之门面模式
转载-http://www.cnblogs.com/java-my-life/archive/2012/05/02/2478101.html在阎宏博士的《JAVA与模式》一书中开头是这样描述门面(Facade)模式的: 门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。 医院的例子转载 2017-02-21 22:32:34 · 338 阅读 · 0 评论 -
《JAVA与模式》之代理模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述代理(Proxy)模式的: 代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。代理模式的结构 所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式类图如下:转载 2017-03-17 22:23:08 · 241 阅读 · 0 评论 -
Java设计模式——状态模式(STATE PATTERN)
场景一描述:现在城市发展很快,百万级人口的城市一堆一堆的,那其中有两个东西的发明在城市的发展中起到非常重要的作用:一个是汽车,一个呢是...,猜猜看,是什么?是电梯!汽车让城市可以横向扩展,电梯让城市可以纵向延伸,向空中伸展。汽车对城市的发展我们就不说了,电梯,你想想看,如果没有电梯,每天你需要爬10 层楼梯,你是不是会崩溃掉?建筑师设计了一个没有电梯的建筑,那投资家肯定不愿意投资,那也是建筑转载 2017-03-17 23:19:20 · 314 阅读 · 0 评论 -
《JAVA与模式》之命令模式
命令模式把一个请求或操作封装到一个对象中。将命令的请求者和接受者分割开,委派给不同的对象。在阎宏博士的《JAVA与模式》一书中开头是这样描述命令(Command)模式的: 命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。 命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或转载 2017-03-17 23:42:32 · 205 阅读 · 0 评论 -
《JAVA与模式》之建造模式
转载-http://www.cnblogs.com/java-my-life/archive/2012/04/07/2433939.html在阎宏博士的《JAVA与模式》一书中开头是这样描述建造(Builder)模式的: 建造模式是对象的创建模式。建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程转载 2017-02-20 12:50:13 · 509 阅读 · 0 评论 -
使用 Builder 模式构造 JavaBean 的好处
转载-http://blog.csdn.net/qq_18796911/article/details/53769421我们一般在构造一个javaBean 对象时,无非有三种写法:1.直接通过构造函数传参的方式设置属性,这种方法如果属性过多的话会让构造函数十分臃肿,而且不能灵活的选择只设置某些参数。2.采用重叠构造区模式,先写第一个只有必要参数的构造器,第二个构造器有一个转载 2017-02-20 17:04:22 · 1254 阅读 · 0 评论 -
《JAVA与模式》之单例模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述单例模式的: 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例模式的结构 单例模式的特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。 饿汉式单例类public class EagerS转载 2017-02-20 10:47:19 · 236 阅读 · 0 评论 -
《JAVA与模式》之装饰模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述装饰(Decorator)模式的: 装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。装饰模式的结构 装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象转载 2017-03-10 15:46:02 · 253 阅读 · 0 评论