摘要:
抽象工厂模式(AbstractFactory):提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。UML图:IFactory:package com.cnblog.clarck;public interface IFactory { IUser createUser(); IDepartment createDepartment();}SqlserverFactory:package com.cnblog.clarck;public class SqlserverFactory implements IFactory { @Override p... 阅读全文
随笔档案-2013年11月
设计模式——观察者模式(ObserverPattern)
2013-11-30 17:13 by 雪夜&流星, 233 阅读, 收藏, 编辑
摘要:
观察者模式(ObserverPattern):观察者模式又称发布-订阅(Publish/Subscribe)模式,定义了一个中一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。UML图:Subject:package com.cnblog.clarck;import java.util.ArrayList;import java.util.List;/** * 主题/抽象通知者 * * @author clarck * */public class Subject { private List obs... 阅读全文
设计模式——建造者模式(BuilderPattern)
2013-11-30 17:04 by 雪夜&流星, 207 阅读, 收藏, 编辑
摘要:
建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。UML图:Builder:package com.cnblog.clarck;/** * 抽象建造者,确定产品有两个部分A和B组成,并声明一个得到产品组合后得到结果的方法getResult. * * @author clarck * */public abstract class Builder { public abstract void buildPartA(); public abstract void buildPartB(); public abstract ... 阅读全文
JVM文章学习
2013-11-29 11:40 by 雪夜&流星, 184 阅读, 收藏, 编辑
摘要:
JVM文章Java虚拟机学习-体系结构内存模型http://blog.csdn.net/java2000_wl/article/details/8009362Java虚拟机学习-对象访问http://blog.csdn.net/java2000_wl/article/details/8015105Java虚拟机学习-垃圾收集算法http://blog.csdn.net/java2000_wl/article/details/8022293Java虚拟机学习-垃圾收集器http://blog.csdn.net/java2000_wl/article/details/8030172Java虚拟机学 阅读全文
设计模式——外观模式(FacadePattern)
2013-11-08 00:45 by 雪夜&流星, 181 阅读, 收藏, 编辑
摘要:
外观模式:为子系统中的一组接口提供一个一致的界面,次模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。UML图:外观类:package com.cnblog.clarck;/** * 外观类 知道哪些子系统负责处理请求,将客户的请求代理给适当的子系统对象 * * @author clarck * */public class Facede { private SubSystemOne one; private SubSystemTwo two; private SubSystemThree three; private SubSystemFour four... 阅读全文
设计模式——模板方法模式(TemplateMethod Pattern)
2013-11-08 00:39 by 雪夜&流星, 230 阅读, 收藏, 编辑
摘要:
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。UML图: 抽象模板:package com.cnblogs.clarck;/** * 抽象模板,并实现了一个模板方法。 * * @author clarck * */public abstract class AbstractClass { public abstract void primitiveOperation1(); public abstract void primitiveOperation2(); /** ... 阅读全文