摘要: 原型模式适用于频繁产生某些类的对象,可以提升创建对象的性能,也使代码变得容易阅读。实现要点:1.定义一个接口Prototype,这个接口中定义一个clone方法。2.定义一个类并实现Prototype接口及clone方法。Java代码public interface Product extends Cloneable { void setSize(int size); int getSize();}public class Font implements Product{ int mSize; public Font(int size) { mSi... 阅读全文
posted @ 2013-12-22 21:58 adgkns 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 单例模式用于系统中只需要一个单例的时候。实现要点:1.创建一个Singleton的类,并将其构造函数设置成private.2.创建一个Singleton的private static变量3.创建一个getInstance()的publuc static方法,通过这个方法获取类的仅有的对象。public class Singleton { private static Singleton singleton = null; private static final Object lock = new Object(); private Singleton(){ S... 阅读全文
posted @ 2013-12-15 20:11 adgkns 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 工厂模式主要是避免new所带来的依赖,这样可以在应用直接替换对象而不用修改。实现要点:1.创建一个Product的类或者接口,Product的子类实现这个接口(或继承这个类);2.创建一个Factory的类或者接口,Factory的子类实现这个接口(或继承这个类),实现建造对象的方法。public interface Shape { void draw();}public class Circle implements Shape { @Override public void draw() { System.out.println("draw circle")... 阅读全文
posted @ 2013-12-15 19:35 adgkns 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 模板模式主要适用于有一些确定的步骤,但细节不大一样的情况。实现要点:1.定义一个抽象类,定义几个抽象方法,定义模板方法供客户端使用。2.定义一个子类继承模板抽象类,实现抽象方法。public abstract class AbstractDisplay { public abstract void open(); public abstract void print(); public abstract void close(); public final void display() { open(); for (int i = 0... 阅读全文
posted @ 2013-12-15 18:52 adgkns 阅读(113) 评论(0) 推荐(0) 编辑
摘要: Adapter的模式的作用主要是调整某个类的接口,使其适应于现有架构。实现要点:1.定义一个适配类,实现需要适配成的接口(或者继承现有的类)。2.在适配类中持有一个被适配对象,在适配接口中调用适配对象的方法。 1 public class Switch { 2 Switchable switchDevice; 3 public void setSwitchDevice(Switchable switchDevice) { 4 this.switchDevice = switchDevice; 5 } 6 public void checked()... 阅读全文
posted @ 2013-12-12 23:51 adgkns 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 最近在看设计模式,今天看的是迭代器Iterator模式,在Java容器部分用的比较多。个人认为迭代器模式的最大优点在于对使用者隐藏了细节,使遍历,删除等一些操作比较容易。迭代器模式实现的要点:1.创建Iterator及Iteratable接口。2.创建ConcreteIterable类,实现Iterable接口去提供创建Iterator对象的方法。3.创建ConcreteIterator类,实现Iterator接口去实现hasNext(),next()方法。下面是我自己参考书本写的一个实验代码:public interface Iterator { boolean hasNext(); ... 阅读全文
posted @ 2013-12-11 23:48 adgkns 阅读(136) 评论(0) 推荐(0) 编辑