随笔分类 - 设计模式
摘要:GoF23 Strategy-策略 1、case:糖果机 1.1、业务背景 设计一个糖果机,工作原理如下: 圆圈:代表一个状态; 箭头:代表一个动作,即状态的转换; 整理 状态 动作 1.2、CandyMachine 成员变量 state:代表状态; count:代表糖果数目; 静态常量:代表状态值
阅读全文
摘要:GoF23 1、case:菜单 有两份菜单 菜单项结构相同; 菜单项存储的实现不同:使用不同的“集合”。 1.1、MenuItem 属性:名称、价格 构造器初始化 getter public class MenuItem { private String name; private double p
阅读全文
摘要:GoF23 1、case:模拟鸭子 开发一款模拟鸭子游戏,包括各种鸭子及其不同行为 会叫; 会游泳; 会飞; …… 如何为鸭子添加行为?考虑以下哪种方案更合适! 1.1、方案尝试 继承 Duck超类 设计一个 Duck 超类; 将行为设计成超类方法; 各种鸭子继承此超类。 quack():所有鸭子都
阅读全文
摘要:GoF23 1、适配器概述 生活中的适配器 问题 假设有一个插座(三孔)和一个插头(二头); 此时无法直接将二者连接使用。 解决 使用适配器:改变插座的接口,以符合插头的要求。 面向对象适配器 问题 假设有一个软件系统,系统接口与厂商提供的接口不匹配; 此时无法工作。 解决 不想改变现有代码(系统代
阅读全文
摘要:将请求封装成对象,以使用不同请求对其它对象进行参数化。
阅读全文
摘要:(继承的替代方案)在不改变原有类的情况下,动态增强对象的功能。
阅读全文
摘要:定义对象之间的一对多依赖,当对象状态改变时,所有依赖者会收到通知并自动更新。
阅读全文
摘要:确保一个类有唯一实例,并提供一个全局访问点
阅读全文
摘要:处理创建对象的细节,实现创建者和调用者的分离
阅读全文
摘要:给某个对象提供一个代理,以控制对该对象的访问
阅读全文
摘要:设计模式是对软件设计中普遍存在问题的优秀解决方案
阅读全文