随笔分类 -  设计模式

摘要:在分布式系统中,经常需要使用 查找对应的数据。产生这种ID需要保证系统全局唯一,而且要高性能以及占用相对较少的空间。 全局唯一ID在数据库中一般会被设成 主键 ,这样为了保证数据插入时索引的快速建立,还需要保持一个有序的趋势。 这样全局唯一ID就需要保证这两个需求: 全局唯一 趋势有序 全局ID产生 阅读全文
posted @ 2016-04-07 15:49 whthomas 阅读(10587) 评论(16) 推荐(24) 编辑
摘要:###定义用一个中介对象封装一系列的对象交互,中介者使用各个对象不需要显式地相互调用,从而达到耦合松散,而且可以独立地改变它们之间的交互。mediator###几个对象- Mediator 抽象中介者角色:定义统一接口,用于同事之间的通信。- Concrete Mediator 具体中介者的角色:具... 阅读全文
posted @ 2015-04-30 11:32 whthomas 阅读(218) 评论(0) 推荐(0) 编辑
摘要:###定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。###代码实现```public class PrototypeClass implements Cloneable { @Override public PrototypeClass clone(){ ... 阅读全文
posted @ 2015-04-29 16:17 whthomas 阅读(139) 评论(0) 推荐(0) 编辑
摘要:###定义将一个类的的接口变换成客户端所期待的另一种接口,使原来因为接口不匹配而无法在一起工作的两个类能够在一起工作。类似电源适配器,转换电压,使得电器能够正常地工作。###几个角色- Target 目标角色:希望使用的接口- Adaptee 源角色:原来已经存在的接口- Adapter 适配器角色... 阅读全文
posted @ 2015-04-25 23:31 whthomas 阅读(174) 评论(0) 推荐(0) 编辑
摘要:###定义将一个复杂对象的构建与它的表示分离,使得同样的**构建**过程可以创建不同的表示。###四个角色- 产品类(Product):有模板方法和基本方法。- 抽象建造者(Builder):规范产品的组建,一般是由子类实现。- 具体建造者(ConcreteBuilder):实现抽象类定义的所有方法... 阅读全文
posted @ 2015-04-24 08:48 whthomas 阅读(198) 评论(0) 推荐(0) 编辑
摘要:###定义定义一个操作中的算法框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可以重新定义该算法的某些特定步骤。###几个角色1. 抽象模板类2. 具体模板类###代码实现抽象模板类 AbstractClass.java```public abstract class Abstra... 阅读全文
posted @ 2015-04-19 18:32 whthomas 阅读(210) 评论(0) 推荐(0) 编辑
摘要:###定义为其他对象提供一种代理以控制对这个对象的访问。###几种角色- Subject抽象主题角色:定义业务的接口或者抽象类。- RealSubject具体主题角色:实现业务的具体角色,也是被代理的对象。- Proxy代理主题角色:代理类,负责对真实角色的应用。###代码实现抽象主题角色 Subj... 阅读全文
posted @ 2015-04-18 14:54 whthomas 阅读(160) 评论(0) 推荐(0) 编辑
摘要:###定义封装一些作用于某种数据结构中得各个元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新操作。###角色- Visitor抽象访问者:抽象类,声明访问者可以访问哪些元素。- ConcreteVisitor 具体访问者:它影响访问者后的具体业务。- Element 抽象元素:声明*... 阅读全文
posted @ 2015-04-16 18:28 whthomas 阅读(163) 评论(0) 推荐(0) 编辑
摘要:###定义备忘录模式提供了一种弥补真实世界的方法。在不破坏封装的前提下,捕获一个对象的内部状态并在该对象之外保存这个状态。以便对象可以恢复原先保存的状态。###备忘录模式的角色- Originator发起人角色:记录当前的内部状态,负责创建和恢复备忘录数据。- Memento备忘录角色:负责存储Or... 阅读全文
posted @ 2015-04-15 20:35 whthomas 阅读(246) 评论(0) 推荐(0) 编辑
摘要:###定义门面模式也称外观模式,是一种常用的封装的模式。要求一个子系统的外部与内部的通信必须挺哥一个统一的对象进行。门面模式会提供一个高层次的接口,使得系统更容易使用。![](http://images.cnitblog.com/blog2015/475531/201504/141929199481... 阅读全文
posted @ 2015-04-14 19:29 whthomas 阅读(310) 评论(0) 推荐(0) 编辑
摘要:观察者模式(Observer Pattern)也叫做发布订阅模式。![](http://images.cnitblog.com/blog2015/475531/201504/131909119645492.jpg)###定义定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则依赖于它的对象都... 阅读全文
posted @ 2015-04-13 19:09 whthomas 阅读(213) 评论(1) 推荐(0) 编辑
摘要:###定义将抽象和实现解耦,使得两者可以独立地变化。![桥梁模式](http://images.cnitblog.com/blog2015/475531/201504/122224360088143.gif)###4个角色在抽象模式中有4个不同的角色。1. 抽象化角色 Abstracttion2. ... 阅读全文
posted @ 2015-04-12 22:26 whthomas 阅读(210) 评论(0) 推荐(0) 编辑
摘要:定义单例模式是一种保证一个类中只有一个实例对象的软件设计模式。它需要确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个还是比较好理解的,一个国家只能有一个国王,不可以出现第二个,所有的人都只能来膜拜这个伟大的国王。下面直接上代码。实现国王类public class King { ... 阅读全文
posted @ 2014-06-06 23:47 whthomas 阅读(290) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示