随笔分类 - 设计模式
摘要:1. 类图 2. 总结 代理模式包装一个对象,并为该对象提供一种访问控制。代理模式可应用于包装远程访问的对象(网络),客户调用代理访问远程对象就像访问本地对象一样,客户甚至都不知道远程对象的存在。代理模式还常用于包装开销比较大的对象,当客户端访问的创建时间比较长的对象时,代理首先构建一个“假”的对象,立即访问,然后再慢慢创建真实的对象。代理模式还可以用于控制对像的访问...
阅读全文
摘要:1. 类图 2. 总结 状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了他的类。
阅读全文
摘要:1.类图 2. 总结 当有数个对象集合,且对象之间有"整体/部分"关系时(多数为树形结构,某些节点保护子节点,某些节点没有子节点(叶子)),客户端希望用透明的方式使用所有节点时,可以使用Composite(组合)模式。MFC中窗口的组合就使用的是组合模式,一个窗口可以包含很多子窗口,而客户端可以调用统一的方法处理所有窗口,比如说隐藏窗口。
阅读全文
摘要:1. 类图 2. 总结 迭代器模式用于客户端程序用统一的方式遍历各种数据集合,而不需要知道数据集合的实现,同时可以自由扩充数据集合。每一种数据集合都需要单独实现一个针对与自身类型的迭代器。
阅读全文
摘要:1. 需求: 设计一个水果榨汁机程序,该程序可以完成橘子、苹果等水果的榨汁,而且该水果榨汁机还可以完成水果削皮和去核。 2. 分析: 不同水果的榨汁流程是一样的,都是先把水果准备好,然后搅碎,然后再把汁液漏出。但是不同水果的准备过程不一样,橘子只需要剥皮,而苹果需要先削皮,然后去核。所以我们可以将不同水果的准备过程封隔离开来,将榨汁流程封装在一起。 3. 类图: ...
阅读全文
摘要:1. 需求 要设计一个家庭媒体中心程序,可以连接DVD,电视(TV)和功放(Sounder),连接好之后,可以一键看电影,一键听音乐。(不用媒体中心的话看电影需要依次打开DVD,TV和Sounder)。 2. 分析 我们需要将实现细节封装起来,只暴露出来最简单的接口给客户程序,比如说WatchMovie和ListenMusic。 3. 类图 4. 总结 ...
阅读全文
摘要:1.需求 为一个开关设计程序,这个开关有N按钮,同时对应N个插槽,要求可以接入任何电器厂商的API,从而可以控制任何电器。目前只有电灯和电视两种电器,要求写一个Demo程序,按钮1可以打开电灯。按钮2可以打开电视并且切换到上一次打开的频道。打开电视换频道需要打开机顶盒并且对机顶盒切换频道。 2. 分析 每个厂商的API不一致,且每个电器的打开流程都不一样,我们需要将这些差异封装...
阅读全文
摘要:第一种:低效率实现 这种实现方法,优点是实现简单,缺点是在多线程频繁访问下效率比较低,经常出现锁竞争。适应于不需要频繁访问实例的情况下。 class Singleton
{
public: static Singleton* GetInstance() { AutoLock lock(mutex); if (!m_inst...
阅读全文
摘要:1.需求设计一个计算一块手机价格的程序,不同的存储容量(16GB和32GB)价格不同,不同的颜色(白色和黑色)价格不同,不同的网络制式(联通和电信)价格不同。当用户选定好配置后,程序计算其价格。2.分析考虑到未来存储容量可能升级到64GB,网络制式可能增加移动或者其他运营商,颜色可能增加更多的颜色,...
阅读全文
摘要:1. 需求:设计一个电脑组装程序,用于组装品牌电脑。组装所用的配件(主板、硬盘、显示器)全部由品牌提供。比如组装一台联想的电脑,则主板、硬盘和显示全部由联想提供。(目前只有Lenovo和Dell两种品牌)2. 分析所有品牌的电脑组装流程都一样,不同的各家品牌有自己专用的配件,所以组装流程应该和获取配...
阅读全文
摘要:1.需求开发一个测试工具专门用于测试手机,测试流程打开分为以下几步:测试开机速度->测试屏幕亮度->测试相机效果。手机有很多种品牌:三星、小米、魅族等等。2. 分析不同的手机的测试流程是一样的。我们可以将不变的测试流程和具体的手机隔离起来,当需要检测新的品牌的手机的时候,不需要更改测试流程,只要添加...
阅读全文
摘要:需求:有一个报社,用户可以随时订阅报纸,也可以随时取消订阅。当每天的新闻来的时候,报社用邮递员投递给订阅了报纸的用户。订阅者有老人、小孩和青年。分析:报社相当于被观察的对象,用户相当于观察者,一旦新闻有更新,报社就通知所有观察者。类图:扩展:该类图使用的是“推”的方式将新闻推送给订阅者。还可以使用一...
阅读全文
摘要:需求: 我们需要设计一种动作游戏。游戏有个法师和战士两种角色,角色以后还可能会增加,比如说修行者之类的。法师和战士可以装备不同的武器和外套,武器目前有枪和迫击炮两种,外套有隐形外套和普通外套两种。武器和外套以后也可能随时增加。设计分析: 在系统中我们看到有三种变化的需求,一是角色,二是武器,三是外套...
阅读全文

浙公网安备 33010602011771号