设计模式
liou825
这个作者很懒,什么都没留下…
展开
-
PROTOTYPE(原型)模式
一、Prototype模式的实现: 1、浅克隆: a. 提供一个类作为克隆的原型,该类实现了Clonable接口 b. 在该类中覆盖Object类的clone()方法,采用super.clone()方法完成克隆 c. 在外部使用场合先产生一个原型对象,然后调用其clone()方法产生克隆对象 2、深克隆: a. 提供一个类作为克隆的原型,该类实现了Seri转载 2012-08-20 16:52:40 · 480 阅读 · 0 评论 -
java中的多线程
原文:http://www.cnblogs.com/rollenholt/archive/2011/08/28/2156357.html 在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。 对于直接继承Thread的类来说,代码大致框架是: ? 1 2 3 4 5 6 7 8 9 10 11转载 2013-11-05 16:42:22 · 639 阅读 · 0 评论 -
UML关系
形象说明UML中的包含与扩展的区别 举个网上流行的例子:比如你从1楼要去5楼,那爬楼梯是必须的,则爬楼梯是"包含关系",如果你上到2楼时,顺便去了趟卫生间,则去卫生间是"扩展关系"。 包含关系:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用。基用例控制与包含用例的 关系,以及被包含用例的事件流是否会插入到基用例的事转载 2013-12-10 11:28:22 · 594 阅读 · 0 评论 -
策略模式
原文:http://www.cnblogs.com/justinw/archive/2007/02/06/641414.html 鸭子-策略模式(Strategy) 前言 万事开头难,最近对这句话体会深刻!这篇文章是这个系列正式开始介绍设计模式的第一篇,所以肩负着确定这个系列风格的历史重任,它在我脑袋里默默地酝酿了好多天,却只搜刮出了一点儿不太清晰的轮廓,可是时间不等人,以后再多“迭代”几次转载 2013-12-10 14:32:37 · 554 阅读 · 0 评论 -
桥梁模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述桥梁(Bridge)模式的: 桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”。 桥梁模式的用意 桥梁模式虽然不是一个使用频率很高的模转载 2014-01-10 12:31:25 · 565 阅读 · 0 评论 -
JDK里的设计模式
原文:http://www.iteye.com/news/18725 Structural(结构模式) Adapter: 把一个接口或是类变成另外一种。 java.util.Arrays#asList() javax.swing.JTable(TableModel) java.io.InputStreamReader(InputStream) java.io.Output转载 2014-01-10 14:06:02 · 492 阅读 · 0 评论 -
Composite(组合模式)
合成模式:合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式就是一个处理对象的树结构的模式。合成模式把部分与整体的关系用树结构表示出来。合成模式使得客户端把一个个单独的成分对象和由他们复合而成的合成对象同等看待。 组合模式(Composite Pattern)有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向转载 2012-08-20 17:23:40 · 3043 阅读 · 0 评论 -
门面模式Facade(结构型)
原文:http://blog.csdn.net/hguisu/article/details/7533759 1. 概述 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。 例子1:一个电源总开关可以控制四盏灯、一个风扇、一台空调和一台电视机的启动和关闭。该电源总开关可以同时控制上述所有转载 2014-01-10 14:23:06 · 642 阅读 · 0 评论 -
模式比较
一.代理模式与适配器模式区别 代理模式 1 代理模式中的原类和代理类继承同一父类; 2 原类对象与代理类对象接口相同,功能一致; 3 起到了隐藏原类的作用。 适配器模式 1 只有适配器继承目标接口; 2 将原有类接口转换为目标代码需求的接口。 二,装饰模式和代理模式 装饰模式: 以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案;装饰能将类转载 2012-08-20 16:10:49 · 609 阅读 · 0 评论 -
二叉树、红黑树
二叉树 遍历概念 所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。 遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。 遍历方案 1.遍历方案 从二叉树的递归定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。因此,在任一给定转载 2014-01-19 00:19:58 · 918 阅读 · 0 评论 -
访问者模式
适配器模式和代理模式是二个比较容易混淆的模式,我想谈一下这两个模式的差别,不过我先分别介绍一下这二个模式,然后再做比较,我想这样大家可能会比较容易理解,对于不懂这两个模式的人来说也多个了解的机会。 适配器说通俗点就是把一个东西包装一下变成另外一个东西,为什么要包装而不直接就用这个东西呢?呵呵,如果能直接用就犯不着适配了,要适配当然就是由于某些原因你用不了当前这个东西。最容易理解的就是电器的例子,转载 2012-08-20 16:02:14 · 581 阅读 · 0 评论 -
数据库分库分表
数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示 http://blog.csdn.net/bluishglc/article/details/7696085 本文着重介绍sharding切分策略,如果你对数据库sharding缺少基本的了解,请参考我另一篇从基础理论全面介绍sharding的文章:数据库Sharding的基本思想和切分策略转载 2014-03-04 23:24:27 · 717 阅读 · 0 评论 -
大型网站框架的演变
原文:http://www.cnblogs.com/qiantuwuliang/archive/2009/07/10/1520611.html 之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,转载 2013-03-22 14:38:57 · 563 阅读 · 0 评论 -
数据库大型应用解决方案总结
随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。 一、负载均衡技术 负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔接在一起,各节点相互协作、共同负载、均衡压力,对客户端来说,整个群集可以视为一台具有超高性能转载 2013-03-13 17:22:51 · 618 阅读 · 0 评论 -
解释器模式
27.1 四则运算你会吗 在银行、证券类项目中,经常会有一些模型运算,通过对现有数据的统计、分析而预测不可知或未来可能发生的商业行为。模型运算大部分是针对海量数据的,例如建立一个模型公式,分析一个城市的消费倾向,进而影响银行的营销和业务扩张方向,一般的模型运算都有一个或多个运算公式,通常是加减乘除四则运算,偶尔也有指数、开方等复杂运算。具体到一个金融业务中,模型公式是非常复杂的,虽然转载 2012-08-30 11:29:55 · 761 阅读 · 0 评论 -
GOF 设计模式
GoF:(Gang of Four,GOF设计模式)---四人组 Design Patterns: Elements of Reusable Object-Oriented Software(即后述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。这几位作者常被转载 2012-08-20 16:07:10 · 832 阅读 · 0 评论 -
装饰模式(I/O流)
装饰模式:装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案,提供比继承更多的灵活性。动态给一个对象增加功能,这些功能可以再动态的撤消。增加由一些基本功能的排列组合而产生的非常大量的功能。 Decorator模式,它通过给对象添加装饰来动态的添加新的功能。如下是Decorator模式的UML图: Java I/O 包中的Decorator模式转载 2012-08-21 10:02:50 · 1231 阅读 · 0 评论 -
观察者模式(Observer)
观察者模式(Observer)完美的将观察者和被观察的对象分离开。让被观察者专注于变化的处理,观察者专注于观察主题变化后的处理。相互不再耦合在一起。 举个例子,用户界面可以作为一个观察者,业务数据是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在界面上。面向对象设计的一个原则是:系统中的每个类将重点放在某一个功能上,而不是其他方面。一个对象只做一件事情,并且将他做好转载 2012-08-30 11:28:04 · 506 阅读 · 0 评论 -
调停者模式
http://www.cnblogs.com/java-my-life/archive/2012/06/20/2554024.html 在阎宏博士的《JAVA与模式》一书中开头是这样描述调停者(Mediator)模式的: 调停者模式是对象的行为模式。调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发转载 2012-08-30 16:16:24 · 688 阅读 · 0 评论 -
享元模式
一、引子 让我们先来复习下java中String类型的特性:String类型的对象一旦被创造就不可改变;当两个String对象所包含的内容相同的时候,JVM只创建一个String对象对应这两个不同的对象引用。让我们来证实下着两个特性吧(如果你已经了解,请跳过直接阅读第二部分)。 先来验证下第二个特性: public class TestPattern { public sta转载 2012-08-21 13:34:14 · 584 阅读 · 0 评论 -
责任链模式
责任链模式(Chain of Responsibility)是Web项目中最经常用到的一个设计模式,比如是Apache Tomcat 的对Encoding的 处理,Struts2 的拦截器, jsp servlet 的Filter 等等,都是基于责任链模式设计的。比如有一个作业任务,先有一个对象对其负责处理,之后又交给其他的一个对象处理,一次传递下去,这是最通俗最简单的责任链模式的应用。但是责任链转载 2012-08-21 15:02:43 · 437 阅读 · 0 评论 -
代理模式
代理这个词大家肯定已经非常熟悉,因为现实中接触的很多,其实现实中的东西恰恰可以非常形象和直观地反映出模式的抽象过程以及本质。现在房子不是吵得热火朝天吗?我们就以房子为例,来拨开代理的面纱。 假设你有一套房子要卖,一种方法是你直接去网上发布出售信息,然后直接带要买房子的人来看房子、过户等一直到房子卖出去,但是可能你很忙,你没有时间去处理这些事情,所以你可以去找中介,让中介帮你处理转载 2012-08-20 16:04:18 · 447 阅读 · 0 评论 -
java 备忘录模式
转http://www.blogjava.net/liuwentao253/archive/2010/02/25/313927.html 9、MEMENTO 备忘录模式:又叫 Snapshot : 快照模式 (1) : 白箱备忘录模式的实现 /** * User: liuwentao@wentao365.com * Date: 2008-12转载 2012-08-31 16:29:13 · 692 阅读 · 0 评论 -
Command模式
Command模式通过被称为Command的类封装了对目标对象的调用行为以及调用参数。将一个请求封装为一个对象,从而使你不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 俺有一个MM家里管得特别严,没法见面,只好借助于她弟弟在我们俩之间传送信息,她对我有什么指示,就写一张纸条让她弟弟带给我。这不,她弟弟又传送过来一个COMMAND,为了感谢他,我请他吃了转载 2012-08-23 15:39:21 · 382 阅读 · 0 评论 -
设计模式中的策略模式与状态模式
使用场景 状态模式:当对象的行为随对象的状态的改变而改变时,我们为了解耦多重判断条件,封装行为的变化,可以定义一个抽象的状态类,提供对象行为接口。具体与状态相关的行为,由它的子类去实现。 策略模式:“策略”二字等同于算法,当现实系统中需要对算法动态指定,并且可以互相替换,可以抽象出算法的调用接口,具体的算法实现由具体的策略角色去实现,根据里氏替换原则,任何出现父类的地方都可以使用它的子类去替换转载 2012-09-05 17:26:30 · 1229 阅读 · 0 评论 -
springmvc /struts2原理
struts2原理 http://www.cnblogs.com/jy02444453/archive/2011/08/27/2155427.html转载 2014-04-24 16:43:04 · 3055 阅读 · 2 评论