摘要: 组合模式 定义 将对象组合成树形结构以表示“部分 整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 UML图 模板代码 Component Composite HRDepartment FinanceDepartment 测试 测试结果 总结 组合模式定义了包含基本对象、组合 阅读全文
posted @ 2019-08-11 17:09 callmeDevil 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 举个栗子 问题描述 打游戏存进度。 简单实现 GameRole 测试 测试结果 存在问题 在客户端调用这段,把整个游戏角色的细节暴露了,职责太大,需要知道游戏角色的生命力、攻击力、防御力这些细节,还要进行备份。如果以后需要增加“魔法力”或修改现有的某种力,那这部分代码就需要修改,同样恢复时也是一样的 阅读全文
posted @ 2019-08-11 15:46 callmeDevil 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 举个栗子 问题描述 不同国家的人在NBA打球,但都是用英文交流。 简单实现 Player Forwards Center Guards 测试 测试结果 存在问题 姚明刚到NBA时可能英文还不太好,也就是说听不懂教练的战术安排,attach 和 defense 不知道什么意思,因此这样实现会有问题,需 阅读全文
posted @ 2019-08-04 16:37 callmeDevil 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 举个栗子 问题描述 上班的日子,上午状态好,中午想睡觉,下午渐恢复,加班苦煎熬。根据时间的不同体现不同的工作状态。 简单实现 Work / 抽象状态 Created by callmeDevil on 2019/8/3. / public abstract class State { public 阅读全文
posted @ 2019-08-03 15:56 callmeDevil 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 举个栗子 问题描述 模拟访问数据库“新增用户”和“得到用户”,用户类假设只有 ID和Name 两个字段。 简单实现 User SqlServerUser 测试 测试结果 存在问题 如果需要连接别的数据库,那么这个写法无法扩展,下面使用 工厂方法模式 实现 工厂方法模式实现 IUser SqlServ 阅读全文
posted @ 2019-07-28 17:13 callmeDevil 阅读(511) 评论(0) 推荐(0) 编辑
摘要: 举个栗子 问题描述 几个同事上班期间看股市行情,让前台MM帮忙看着老板什么时候过来查岗,老板进门的时候MM就拨电话给其中一个同事,于是所有同事都知道了,再继续工作。。。 简单实现 前台秘书MM 看股票同事 测试 测试结果 存在问题 “前台MM”和“看股票同事”互相耦合 如果还有人想看NBA直播,那只 阅读全文
posted @ 2019-07-27 16:26 callmeDevil 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 举个栗子 问题描述 画一个小人,有头、身体、两手、两脚就可以了。 简单实现 人类 测试 测试结果 存在问题 画人的时候,头身手脚是必不可少的,不管什么人物,开发时是不能少的。但上面测试代码中时各部分堆积起来,很容易漏写,比如导致健全的人物却少了一条“腿”。而且如果需要在别的地方用这些画小人的程序怎么 阅读全文
posted @ 2019-07-21 14:28 callmeDevil 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 举个栗子 问题描述 股民炒股票 简单实现 股票1 其他股票 测试 测试结果 外观模式 定义 为了子系统中的一组接口提供一个一致的界面,此模式定义了一个高层的接口,这个接口使得这个子系统更加容易使用。 UML图 代码实现 基金类(Facade) 测试 测试结果同上,此处省略。 总结 首先,在设计初期阶 阅读全文
posted @ 2019-07-20 14:33 callmeDevil 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 举个栗子 问题描述 小时候数学老师的随堂测验,都是在黑板上抄题目,然后再作答案。写一个抄题目的程序。 简单实现 学生甲抄的试卷 学生乙抄的试卷 测试 测试结果 存在问题 两个学生抄试卷都非常类似,除了答案不同,没什么不一样,这样又容易错,又难以维护。因此老师出一份试卷,打印多份,让学生填写答案就可以 阅读全文
posted @ 2019-07-14 15:01 callmeDevil 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 举个栗子 问题描述 要求有一个简历类,必须要有姓名,可以设置性别和年龄,可以设置工作经历,最终需要三份简历。 简单实现 简历类 测试 测试结果 存在的问题 跟手写简历没有差别,三份简历需要三份实例化,如果客户需要二十份简历,那就得实例化二十次。 原型模式 定义 用原型实例指定创建对象的种类,并且通过 阅读全文
posted @ 2019-07-13 14:08 callmeDevil 阅读(490) 评论(0) 推荐(0) 编辑