摘要:
定义 只创建一个对象 模式 懒汉模式:调用类中的实例化方法的时候才创建 饿汉模式:类加载的时候就进行对象的创建 简单说,创建对象的顺序不一样; 扩展 可以将多个单例存放到链表中,当需要使用的时候直接从链表中拿就可以了 代码 SingletonHungry(饿汉模式) /** * * Descript 阅读全文
摘要:
定义 创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中,满足“创建与使用相分离”;在简单工厂模式中创建实例的方法通常为静态(static)方法; 架构 抽象产品、具体产品、简单工厂 代码 Bee(抽象产品) public interface Bee { String produ 阅读全文
摘要:
定义 由于某些原因需要给某对象提供一个代理以控制对该对象的访问,这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 架构 抽象主题类、真实主题类、代理类 分类 {静态代理:手动创建代理类 {动态代理:使用反射动态创建 作用 保护真实对象,增强真实对象 代码 Su 阅读全文
摘要:
定义 本质就是实现一个对象的克隆,Java自带的原型模式基于内存二进制流的复制,比new一个对象的性能更好;Object的clone()方法就可以实现原型 --克隆体; 简述 如果需要多个实例,可以通过创建一个实例然后通过克隆的方式来快速得到多个相同或相似的实例,因为创建实例需要的时间和资源比复制要 阅读全文
摘要:
定义 多个对象之间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都得到通知并执行相应的行为;有点消息队列的意思 架构 抽象主题:提供一个用于保存订阅者对象的聚集类和增加、删除订阅者对象的方法,以及通知所有订阅者的抽象方法; 具体主题:实现抽象主题中的通知方法,当具体主题的内部状态 阅读全文
摘要:
定义 定义一个操作中的算法骨架,将算法中的一些步骤延伸到子类,使得子类可以不改变算法结构的情况下重新定义该算法的某些特定步骤 架构 模板:模板中定义抽象方法(子类重写)和基本方法(非抽象方法,子类可直接调用); 扩展 应用场景 1、算法整体步骤固定,其中个别容易改变的时候可以使用模板方法模式将容易改 阅读全文