随笔分类 -  设计模式

摘要:工厂的好处常见的工厂模式有三个:简单工厂(Factory)、工厂方法(Factory Method)、抽象工厂(Abstract Factory)。如果按目标分类它们都是属于创建型(Creational Pattern)《scala编程》里提到两个工厂的优点1. 将对象的创建集中化 好的代码的终极目标是:易维护,易扩展,易复用,易使用。但如果代码里new一个类,new得到处都是,new得五花八门那肯定是灾难。 所以要统一集中的使用一种方式,这就是所谓的易维护,易复用。2. 隐藏对象实际代表的类的细节 这里可以理解为初始化类的细节。也就是说,使客户更容易的理解和使用。这就是易用 由于隐藏了细节, 阅读全文
posted @ 2012-12-11 21:21 倚楼无语F5 阅读(458) 评论(0) 推荐(0)
摘要:UML中有几个关系比较容易混淆,今天整理下。借来四张图:依赖关联聚合(特殊的关联)合成(特殊的聚合)更直观的思维导图参考:http://www.uml.org.cn/OObject/OObject08081.htm 阅读全文
posted @ 2011-12-26 18:25 倚楼无语F5 阅读(224) 评论(0) 推荐(0)
摘要:重读笔记第一次:这篇总结写的不好,自己的东西重看的也比较累,不高兴改了,就写这里吧。主要总结迭代器的两个功能的左边那个:不暴露底层,也可以说是统一接口以备泛用。其实cron4j也不是没有返回迭代器,只是不如教科书上的那样死板而已。再补充下java类库的aggregate角色和iterator角色。分别是java.lang.iterable和java.util.iterator就这样吧经典的迭代器模式,有两个功能1、提供一个方式顺序访问集合2、不暴露底层的表现形式。经典的迭代模式有四个角色。aggregate、concreteAggregate、iterator、concreteIterator 阅读全文
posted @ 2011-08-28 15:01 倚楼无语F5 阅读(529) 评论(0) 推荐(0)
摘要:2012/1/12 追加新看到三种单例模式,备忘 - 倚楼无语F5 - 博客园 - Nightly单线程下的单例多线程下的单例类的同步方法和对象的同步方法。单线程单例单例(Singleton)的定义如下, 场景多是全局访问。Ensure a class only has one instance, and provide a global point of access to it 。写一个单例类往简单说,只要记住三点即可。1、一个私有的构造器。2、含有一个自身的实例。3、提供一个静态方法访问实例publicclassSingleton{ // 2privatestaticSingletonc 阅读全文
posted @ 2011-08-09 23:05 倚楼无语F5 阅读(583) 评论(0) 推荐(0)
摘要:本来是只想看下Transient是什么?Variables may be marked transient to indicate that they are not part of the persistent state of an object. 即指明变量不是对象的持久化的一部分。然后想说写段代码看看实际效果吧,怎么持久呢?对象流... 接着就想到Java的克隆方式。java的克隆方式有两种:1、 覆写Object的protected的clone方法。 光覆写还是不行的,使用的时候会报错 java.lang.CloneNotSupportedException。 所以需要实现下Cl.. 阅读全文
posted @ 2011-08-09 12:18 倚楼无语F5 阅读(416) 评论(0) 推荐(0)
摘要:首先回顾下Proxy模式Provide a surrogate or palceholder for another object to control access to it.其实就是把要控制的类包上一层。接口是一致的,所以从外面看不出区别,里面却大有乾坤。客户类:1publicclassProxyTest2{2publicstaticvoidmain(String[]args){3Subjectsubject=ProxyTest2.getASubject();4subject.doOperationOne();5}67publicstaticSubjectgetASubject(){8R 阅读全文
posted @ 2011-07-26 15:51 倚楼无语F5 阅读(419) 评论(0) 推荐(0)
摘要:Defines an interface for creating an object,but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclassesProvide an interface for creating families of related or dependent objects without specifying their concrete classes两个模式非常类似,那它们之间什么区别呢?先总结下工 阅读全文
posted @ 2011-06-13 13:40 倚楼无语F5 阅读(179) 评论(0) 推荐(0)
摘要:工厂方法模式定义Defines an interface for creating an object,but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses一般java创建一个实例是这样Productp=newProduct();可以实际情况要复杂。创建一个实例需要非常多的初始化工作。诸如:intdata[]=[1,2,3];Productp=newProduct(data);为了复用,我们就用一个类Factory把数 阅读全文
posted @ 2011-06-12 21:23 倚楼无语F5 阅读(181) 评论(0) 推荐(0)
摘要:适配器模式定义(个人理解:只是个套子)Convert the interface of a class into another interface clients excpet. Adapter lets classes work together that couldn't otherwise becase of incompatible interfaces.模式理解:看到第一眼的时候,我就觉得坑爹啊,怎么又和bridge长的那么像啊。再一转念,其实它们之间有巨大的不同:从实际编码来说Adaptee基本上就是现成的,而Target也很高概率是完成的。而Adpater目的是为了让T 阅读全文
posted @ 2011-06-12 15:10 倚楼无语F5 阅读(221) 评论(0) 推荐(0)
摘要:个人觉得策略、桥接、命令这三种模式有一定的相似度。所以放在一些,写点东西,理理思路。策略模式的定义(个人理解:单边变化)Defines a family of algorithms, encapsulate each one, and make them inter changeable .Strategy lets the algorithm vary independently from clients that use it理解:这种模式很常见,通常大家也都会把一部分可能有变化或者就是需要有多少变化的操作(步骤)通过接口给分离出去,自身只要有一个实现该接口的成员即可。这种就是松耦合,有人 阅读全文
posted @ 2011-06-12 10:36 倚楼无语F5 阅读(374) 评论(0) 推荐(0)