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