随笔分类 - 设计模式
摘要:偶然看到csdn一篇关于设计模式的小结,挺有特点的,特别是对逆鳞的说明,耳目一新。顺道给出了一些自己的思考,由于作者标注不让转发,只能留个连接了,http://blog.csdn.net/ymrfzr/article/details/51493512 以下是自己针对文章的一些思考小结: 1.简单工厂
阅读全文
摘要:逛知乎,有篇关于fastjson如此快为什么国外还是喜欢用Jackson的问题,高票答案中有一点提到了fastjson有很多写死的地方,也不太适合像spring这种依赖AOP的框架使用,顺便提到了ASM,一个可以动态的生成java字节码的框架。兴趣使然,顺便也巩固下已经荒废很久的主业。哦,对了,fa
阅读全文
摘要:引言:Java是一个支持双分派的单分派语言知道java是支持后期动态绑定,也知道访问者模式,但是两者之间的关系,还真不知道,况且在这之间还有一个静态绑定。1.动态绑定class Father { public void method(){ System.out.println("...
阅读全文
摘要:准备下周分享会的内容,无意间看到.net版本的重构31天,花了两个小时看了下,可以看成是Martin Fowler《重构》的精简版 原文地址:http://www.lostechies.com/blogs/sean_chambers/archive/2009/07/31/31-days-of-ref
阅读全文
摘要:装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。具体被装饰者和抽象装饰类都继承于抽象被装饰者类,继承的是类型,而不是行为。行为来自装饰者和基础组件,或与其他装饰者之间的组合关系。装饰模式的角色 抽象构件角色(Component):给出一个抽象接口,以规范准备...
阅读全文
摘要:一、引子其实没有什么好的例子引入解释器模式,因为它描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发编译器中;在实际应用中,我们可能很少碰到去构造一个语言的文法的情况。虽然你几乎用不到这个模式,但是看一看还是能受到一定的启发的。二、定义与结构解释器模式的定义如下:定义语言的文法,并且...
阅读全文
摘要:1.概念 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 [构建与表示分离,同构建不同表示] 与抽象工厂的区别:在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指导者联系的,指导者联系建造者最后得到产品。消费者最后是通过建造者得到产品而不是通过指导者,另外,消费者无...
阅读全文
摘要:Abstract Factory定义 为一系列相关对象或相互依赖的对象创建一个接口,而无需指定它们的具体类。抽象工厂在这里起到一个约束的作用,并提供所有子类的一个统一外观,来让客户端使用上面的uml图,我们会发现,ConcreteFactory1只会生成A1+B1,是有严格约束的,如果没有这个约束条...
阅读全文
摘要:一、简单工厂1.1 使用场景 1、工厂类负责创建的对象比较少; 2、客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心; 3、由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用。1.2优缺点 优点: 工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的...
阅读全文
摘要:一、备忘录(Memento)模式结构备忘录对象是一个用来存储另外一个对象内部状态的快照(snapshot)的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉住,并外部化,存储起来,从而可以在将来适合的时候把这个对象还原到存储起来的状态。备忘录模式常常与命令模式和迭代子模式一同使用。...
阅读全文
摘要:原型模式其实就是java的拷贝机制原文出处:http://blog.csdn.net/zhengzhb/article/details/7393528定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。类型:创建类模式类图:原型模式主要用于对象的复制,它的核心是就是类图中的原型类Pr...
阅读全文
摘要:模板方法在servlet中的应用:http://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.html原文出处:http://blog.csdn.net/zhengzhb/article/details/7405608定义:定义一个操...
阅读全文
摘要:意图:将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录日志,以及支持可撤销的操作动机:将”发出请求的对象”和”接收与执行这些请求的对象”分隔开来。这里可能会有一个疑惑,就是为什么要将”发出请求的对象”和”接收与执行这些请求的对象”分隔开来,其实道理很简单,我们假设司令发...
阅读全文
摘要:定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。类型:行为类模式类图: 1 public static void main(String[] args) { 2 List list = new ArrayList(); 3 list.add(...
阅读全文
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述访问者(Visitor)模式的: 访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。 1 interface Service { 2 3 ...
阅读全文
摘要:原文地址:http://blog.csdn.net/jason0539/article/details/23297037概念: java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。 单例模式有一下特点: 1、单例类只能有一个实例。 2、单例类必须自...
阅读全文
摘要:原文出处:http://blog.csdn.net/zhengzhb/article/details/7430098定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。类型:行为类模式类图:中介者模式的结构 中介者模式又称...
阅读全文
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述门面(Facade)模式的: 门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。门面模式有三个角色组成:1) 门面角色( facade ):这是门面模式的核心。它被...
阅读全文
摘要:定义(GoF《设计模式》): 将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和使用具有一致性。及角色: 1.Component 是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component子部件。 2.Leaf...
阅读全文
摘要:1.书籍《JHead First 设计模式(中文版)》《JAVA与模式》《大话设计模式》2.连接地址http://blog.csdn.net/jason0539/article/category/2093817http://www.cnblogs.com/mengdd/tag/设计模式/java 设...
阅读全文