摘要: 定义 完成一个流程有多种策略,择优; 定义一系列规则,并将每个规则封装起来,使它们可以相互替换,并且规则的变化不会影响执行规则的对象,通过对规则的封装把规则的条件和规则的结果分割开。 架构 抽象策略:各种不同的规则以不同的方式实现这个接口,环境角色使用这个接口调用不同的规则; 具体策略:实现了抽象策 阅读全文
posted @ 2021-07-23 22:21 有锦 阅读(17) 评论(0) 推荐(0)
摘要: 定义 对有状态的对象,把复杂的判断逻辑提取到不同的状态对象中,允许其状态对象在其内部状态发生改变时改变其行为; 架构 环境类:也称为上下文,它定义了客户端需要的接口,内部维护一个当前状态,并负责具体状态的切换; 抽象状态:定义一个接口,用以封装环境对象中的特定状态所对应的行为,可以有一个或多个行为; 阅读全文
posted @ 2021-07-23 21:47 有锦 阅读(15) 评论(0) 推荐(0)
摘要: 定义 只创建一个对象 模式 懒汉模式:调用类中的实例化方法的时候才创建 饿汉模式:类加载的时候就进行对象的创建 简单说,创建对象的顺序不一样; 扩展 可以将多个单例存放到链表中,当需要使用的时候直接从链表中拿就可以了 代码 SingletonHungry(饿汉模式) /** * * Descript 阅读全文
posted @ 2021-07-23 21:29 有锦 阅读(11) 评论(0) 推荐(0)
摘要: 定义 创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中,满足“创建与使用相分离”;在简单工厂模式中创建实例的方法通常为静态(static)方法; 架构 抽象产品、具体产品、简单工厂 代码 Bee(抽象产品) public interface Bee { String produ 阅读全文
posted @ 2021-07-23 21:19 有锦 阅读(7) 评论(0) 推荐(0)
摘要: 定义 由于某些原因需要给某对象提供一个代理以控制对该对象的访问,这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 架构 抽象主题类、真实主题类、代理类 分类 {静态代理:手动创建代理类 {动态代理:使用反射动态创建 作用 保护真实对象,增强真实对象 代码 Su 阅读全文
posted @ 2021-07-23 21:01 有锦 阅读(9) 评论(0) 推荐(0)
摘要: 定义 本质就是实现一个对象的克隆,Java自带的原型模式基于内存二进制流的复制,比new一个对象的性能更好;Object的clone()方法就可以实现原型 --克隆体; 简述 如果需要多个实例,可以通过创建一个实例然后通过克隆的方式来快速得到多个相同或相似的实例,因为创建实例需要的时间和资源比复制要 阅读全文
posted @ 2021-07-23 20:33 有锦 阅读(10) 评论(0) 推荐(0)
摘要: 定义 多个对象之间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都得到通知并执行相应的行为;有点消息队列的意思 架构 抽象主题:提供一个用于保存订阅者对象的聚集类和增加、删除订阅者对象的方法,以及通知所有订阅者的抽象方法; 具体主题:实现抽象主题中的通知方法,当具体主题的内部状态 阅读全文
posted @ 2021-07-23 19:53 有锦 阅读(8) 评论(0) 推荐(0)
摘要: 定义 定义一个操作中的算法骨架,将算法中的一些步骤延伸到子类,使得子类可以不改变算法结构的情况下重新定义该算法的某些特定步骤 架构 模板:模板中定义抽象方法(子类重写)和基本方法(非抽象方法,子类可直接调用); 扩展 应用场景 1、算法整体步骤固定,其中个别容易改变的时候可以使用模板方法模式将容易改 阅读全文
posted @ 2021-07-23 00:16 有锦 阅读(8) 评论(0) 推荐(0)