![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
design pattern
booooooooooooooooooo
这个作者很懒,什么都没留下…
展开
-
Master-Slave通用基础框架
一、设计目的 设计出一个通用的Master-Slave基础框架,然后可以基于这个框架来实现特定的业务需求,比如实现多节点并行计算等。二、设计理念 基于经典的命令模式,Master和Slave之间通过相互发送命令(Command)实现交互,命令是一个抽象的概念,Command可以用来分发任务,也可以用来传输数据, 这完全由业务来决定怎么处理转载 2013-03-20 11:18:33 · 1177 阅读 · 0 评论 -
状态(state)模式以及和策略(strategy)的比较
一.概念 状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模式。 状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。 状态模式的结构 用一句话来表述,状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模转载 2013-04-16 11:44:23 · 946 阅读 · 0 评论 -
java代理模式和动态代理
一、概述在软件开发中,有些对象由于创建成本高、访问时需要与其它进程交互等原因,直接访问会造成系统速度慢、复杂度增大等问题。这时可以使用代理模式,给系统增加一层间接层,通过间接层访问对象,从而达到隐藏系统复杂性、提高系统性能的目的。二、代理模式代理模式为其他对象提供一种代理以控制对这个对象的访问。其结构图如下:Subject定义了RealSubject和Proxy共用转载 2013-04-18 09:14:01 · 914 阅读 · 1 评论 -
享元(flyweight)模式
ref:http://www.cnblogs.com/rush/archive/2011/10/01/2197785.html1.1.1 摘要 今天是国庆节,祝大家国庆节快乐身体健康,在我们面向对象设计过程中,我们常常会面临着对象实例过多的问题,如果对象实例过多这将是我们系统性能提高的一个瓶颈。假设我们要设计一个星空场景,现在我们需要实例星星对象,我们可以实例每一颗转载 2013-04-29 19:52:23 · 878 阅读 · 0 评论 -
访问者(visitor)模式
ref:http://rjx2008.iteye.com/blog/339886做了标题党=。=这一篇并没有介绍关于访问者模式的进阶,先说一下访问者模式的使用情况,这里引用大话设计模式的例子,因为讲得比较精辟。 假设有男人和女人两种元素,要分别打印出他们在不同状态时的不同表现。 用OO的思想把表现(行为)提取出来作为一个抽象方法,代码如下: 用if-else对状态进行判断转载 2013-04-29 23:45:13 · 971 阅读 · 0 评论 -
备忘录(memento)模式
ref:http://www.cnblogs.com/BeyondAnyTime/archive/2012/08/05/2623667.html生活中大家可能都幻想过如果当初我没怎么样怎么样就好了,当产生这样的想法的时候一定是发生什么不如意的事。生活是现实的,时间也永远不会回到做错事之前的一刹那。软件虽服务于生活,模拟生活却也和生活有所不同,应用软件时,我们可以比较容易的进行备忘,比如编辑转载 2013-04-30 01:13:26 · 903 阅读 · 0 评论 -
原型(prototype)模式
ref:http://redsnow-fenglin.iteye.com/blog/694932 所谓原型(Prototype)模式,是指通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个原型对象的办法创建出更多同类型的对象。下图左侧是原型模式的一般性结构示意图,右侧是简单的实现样例。 原型(Prototype)模式主要采用的是java的clo转载 2013-04-30 19:52:54 · 870 阅读 · 0 评论 -
调停者(mediator)模式
ref:http://www.cnblogs.com/java-my-life/archive/2012/06/20/2554024.html调停者模式是对象的行为模式。调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其他的一些对象之间的相互作用。从而保证这些相互作用可以彼此独转载 2013-04-30 21:30:40 · 932 阅读 · 0 评论 -
解释器(interpreter)模式
ref:http://www.cnblogs.com/java-my-life/archive/2012/06/19/2552617.html在阎宏博士的《JAVA与模式》一书中开头是这样描述解释器(Interpreter)模式的: 解释器模式是类的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句转载 2013-04-30 23:15:10 · 919 阅读 · 0 评论 -
创建模式之工厂、工厂方法、抽象工厂与建造者(builder)
ref:http://redsnow-fenglin.iteye.com/blog/691868由于博文仅倾向于模式的理解与相似模式间关系,所以,博文可能会以某类模式一起论述的形式出现。这些主要是个人回顾性的总结,具有较强的随意性,必定存在论述上的不周或过于累赘,还望朋友们海涵指正。 我们知道设计模式的最基本的原则是状态变化部分和不变部分尽可能地分离,比如桥接(Bridg转载 2013-04-30 19:15:56 · 1725 阅读 · 0 评论 -
桥梁(bridge)模式
ref:http://www.cnblogs.com/java-my-life/archive/2012/05/07/2480938.html在阎宏博士的《JAVA与模式》一书中开头是这样描述桥梁(Bridge)模式的: 桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)转载 2013-04-10 00:32:10 · 885 阅读 · 0 评论 -
责任链(chain of responsibility)模式
责任链可能是一条直线、一个环链甚至一个树结构的一部分。 责任链模式的结构 责任链模式是一种对象的行为模式,它所涉及到的角色如下: 第一、抽象处理者(Handler)角色、定义出一个处理请求的接口;如果需要,接口可以定义出一个方法,以返回对下家的引用。下图给出了一个示意性的类图:图2、抽象处理者角色。 在图中的积累关系给出了具体子类对下家的引用,抽转载 2013-04-08 09:11:26 · 963 阅读 · 0 评论 -
组合(composite)模式
组合模式:允许你将对象组合成树型结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。一、组合模式 要点:1. 组合模式以不遵守单一责任原则换取透明性,让Client将组合和叶节点一视同仁。2. 在实现组合模式时,有很多设计上的折衷。要根据需求平衡透明性和安全性。3. 有时候系统需要遍历一个树枝构件的子构件很多次,这时候可以把遍历结转载 2013-04-07 00:55:23 · 880 阅读 · 0 评论 -
适配器(adapter)模式--类适配器和对象适配器
上图为适配器模式的对象适配器模式和类适配器模式。 适配器模式所涉及的角色包括:1. 源(Adaptee):已经存在的、需要适配的类。2. 目标(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。3. 适配器(Adapter):适配器模式的核心类。有两种方式实现Adapter,对象适配器(Obj原创 2013-04-04 21:35:18 · 1414 阅读 · 0 评论 -
门面(facade)模式
ref:http://www.cnblogs.com/java-my-life/archive/2012/05/02/2478101.html 在阎宏博士的《JAVA与模式》一书中开头是这样描述门面(Facade)模式的: 门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。转载 2013-04-05 01:45:13 · 844 阅读 · 0 评论 -
策略(strategy)模式
策略模式外形分为完整策略和effictive中讲的函数对象表示策略。引用三篇文章,以备忘!一.概念 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:"准备一组算法,并将每一个算法封装起来,使得它们可以互换。"策略又称做政转载 2013-04-02 09:04:13 · 803 阅读 · 0 评论 -
观察者(observer)模式
气象站的故事 现在我们要为一家气象站开发一套气象监控系统,按照客户的要求,这个监控系统必须可以实时跟踪当前的天气状况(温度、湿度、大气压力),并且可以在三种不同设备上显示出来(当前天气状况、天气统计、天气预测)。客户还希望这个系统可以对外提供一个API接口,以便任何开发者都可以开发自己的显示设备,然后无缝挂接到系统中,系统可以统一更新所有显示设备的数据。客户还会提供一个可以访问气象转载 2013-04-03 00:17:17 · 985 阅读 · 0 评论 -
从Decorator,Adapter模式看Java/IO库
我想任何一本介绍模式的书在讲到Decorator模式的时候不能不提到它的实际应用--在Java/IO库里面的应用,>这本书也不例外,有点不一样的是,这本书在介绍的时候有个专题,是从两个模式来看Java/IO库,完这个专题后,个人感觉对Java/IO库有了全新的认识同时也加深了Decorator模式跟Adapter适配器模式的理解,现和大家分享下这个在我看来很伟大的成果,同时说明下,以下大部分文字跟转载 2013-04-04 15:08:57 · 1059 阅读 · 0 评论 -
工厂(factory)模式
一.概述 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。 工厂模式分为三类:1)简单工厂模式(Simple Factory);2)工厂方法模式(Factory Method);3)抽象工厂模式(Abstract Factory); 这三种模式从上到下逐步抽象,并且更具一般性。 二原创 2013-04-05 23:22:01 · 862 阅读 · 0 评论 -
模版方法(template method)模式
一.模式简介 下面是模板方法模式的结构图。直接把《设计模式》上的图拿过来用下: 1) AbstractClass(抽象类):定义了一到多个的抽象方法,以供具体的子类来实现它们;而且还要实现一个模板方法,来定义一个算法的骨架。该模板方法不仅调用前面的抽象方法,也可以调用其他的操作,只要能完成自身的使命。 2)原创 2013-04-05 17:04:37 · 1272 阅读 · 0 评论 -
命令(command)模式
材料内容均取自head first dp一、简介命令模式是将请求(命令)封装为对象。以便于使用不同的请求(队列或者日志)来参数化其他对象。命令模式把发出命令的责任(invoker)和执行命令的责任(receiver)分割开。关于命令模式1.命令模式将发出请求的对象和执行请求的对象解耦2.在被解耦的两者之间间是通过命令对象进行沟通的,命令对象封装了原创 2013-04-06 21:13:27 · 1056 阅读 · 0 评论 -
迭代器(Iterator)模式
概述: 迭代器模式(Iterator):提供一种方法顺序一个聚合对象中各个元素,而又不暴露该对象内部表示。实用场合:转载 2013-04-07 00:43:10 · 989 阅读 · 0 评论 -
单例(singleton)模式
单例模式,以及延迟初始化先关解决方案原创 2013-04-06 12:24:03 · 818 阅读 · 0 评论