01 2022 档案
GoF23 1、case:模拟鸭子 开发一款模拟鸭子游戏,包括各种鸭子及其不同行为 会叫; 会游泳; 会飞; …… 如何为鸭子添加行为?考虑以下哪种方案更合适! 1.1、方案尝试 继承 Duck超类 设计一个 Duck 超类; 将行为设计成超类方法; 各种鸭子继承此超类。 quack():所有鸭子都
阅读全文
GoF23 1、适配器概述 生活中的适配器 问题 假设有一个插座(三孔)和一个插头(二头); 此时无法直接将二者连接使用。 解决 使用适配器:改变插座的接口,以符合插头的要求。 面向对象适配器 问题 假设有一个软件系统,系统接口与厂商提供的接口不匹配; 此时无法工作。 解决 不想改变现有代码(系统代
阅读全文
将请求封装成对象,以使用不同请求对其它对象进行参数化。
阅读全文
(继承的替代方案)在不改变原有类的情况下,动态增强对象的功能。
阅读全文
定义对象之间的一对多依赖,当对象状态改变时,所有依赖者会收到通知并自动更新。
阅读全文