- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C设计模式第四讲
第七节:组合(树节点)迭代+策略+装饰+适配模式 * * 《C++设计模式教程》 第四讲:UIPLib设计模式(一) (组合模式、迭代器模式、策略模式、适配器模式、装饰模式) 主讲人:步磊峰 UIPower 3D界面引擎负责人 前言: * 在前面三讲中,我们详细讲解了创建模式。由于创建模式相对来说功能比较单一,而结构模式和行为模式涉及到 软件架构以及对象间通信关系。为了更好的演示相关设计模式,特意编写了UIPLib以及基于UIPLib上的UIPPaint应用 程序来演示涉及到的相关行为和结构模式: UIPLib用到的模式: 已讲解过的模式: 单例模式(CApplication) 工厂模式(渲染系统) 将要讲解的模式: 组合模式(控件系统) 迭代器模式(CArrayIterator,节点迭代器) 策略、装修、适配模式(节点迭代器) 观察者模式(事件系统) 模板方法模式 UIPaint用到的模式: 将要讲解的模式: 中间者模式(UIPLib和UIPPaint的纽带) 状态模式 (各种图元的切换) 命令模式 (实现Undo(Ctrl-Z)/Redo(Ctrl-Y)功能) 访问者模式 (图元的绘制) 职责链模式 (F1帮助系统) 第一节: 组合模式(控件系统) * 意图: 将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使用户对单个对象和组合对象的使用具有一致 性。 由意图描述可知,组合就是对象的集合,其中一个对象既可以是一个组合,也可以是一个简单的、单一的对象。 很符合树的数据结构模式。 在整篇教程中,我们将树结构等同于组合模式,具有互换性。 在树的术语中,对象可以使带有其他分支的节点,也可以是叶子。 第一节: 组合模式(控件系统) * 开发中的存在的问题: 在实际开发中遇到的问题是:对于组合中的所有对象都要求具有一个简单的,单一的访问接口并要求能区分节点和叶 子 ,这两者是矛盾的。节点可以由孩子并允许添加孩子。而叶子节点不允许有孩子,也不允许添加孩子。 当我们要区分叶子和节点时,可能使用的一种结构方式: struct ICompositeBase { virtual ICompositeBase* GetParent() = 0; virtual ICompositeBase* GetRoot() = 0; virtual bool IsLeaf() const () = 0; }; struct CLeaf : public ICompositeBase { virtual ICompositeBase* GetParent(); virtual ICompositeBase* GetRoot(); virtual bool IsLeaf() const { return true;} }; struct CNode : public ICompositeBase { virtual ICompositeBase* GetParent(); virtual ICompositeBase* GetRoot(); virtual bool IsLeaf () const { return false;} virtual bool AddChild( ICompositeBase* c); virtual bool RemoveChild(int idx); virtual vectorICompositeBase* GetChildren(); }; 第一节: 组合模式(控件系统) * 在这种区分叶子和节点的组合模式中,存在两个问题: 1) 叶子和节点虽然都是IComp
您可能关注的文档
- AT89C51单片机交通灯显示系统设计. Doc1.doc
- Artificial intelligent人工智能AI.pptx
- ATmega128单片机的系统结构.ppt
- ATP 课.ppt
- ATP-高中生物.ppt
- ATI-装配调直装置和防碰撞传感器-20131217.ppt
- ATP公开课课件.ppt
- AS及稳定型心绞痛 20150420.ppt
- ATP简单实用的课件.ppt
- ATP优质课.ppt
- 2025年广西百色边境管理支队招聘辅警10人笔试高频难、易错点备考题库及参考答案详解1套.docx
- 2025年工业和信息化部电子第五研究所招聘应届毕业生(第二批)笔试高频难、易错点备考题库及参考答案详.docx
- 2025年山东聊城江北水城旅游度假区教育事业单位选聘教师6人笔试高频难、易错点备考题库含答案详解.docx
- 2025年山东青岛市市南区所属事业单位招聘56人笔试备考题库及答案详解一套.docx
- 2025年广州市社会科学院高层次和急需紧缺人才招聘笔试高频难、易错点备考题库及完整答案详解1套.docx
- 2025年新疆伊犁师范大学引进高层次人才70人笔试备考题库带答案详解.docx
- 2025年新疆维吾尔自治区赴高校引才招聘1301人笔试高频难、易错点备考题库及完整答案详解1套.docx
- 2025年江苏常州工业职业技术学院招聘教师22人笔试备考题库带答案详解.docx
- 2025年山东菏泽鲁西新区教育系统引进高层次人才55人笔试备考题库附答案详解.docx
- 2025年新疆医科大学新疆国际医疗中心(新疆国际医院)招聘183人笔试高频难、易错点备考题库参考答案.docx
最近下载
- 第六章煤层气钻井完井工艺技术.ppt VIP
- WI-PM-004ALL100烧录器操作规范.doc VIP
- 2025年国企审计部内部招聘试题.pdf VIP
- 文稿传输otn原理及设备介绍.pptx VIP
- BS EN 50600-2-2-2019 信息技术.数据中心设施和基础设施.第2-2部分:供电和配电.pdf VIP
- 中医护理方案2017解读.pptx VIP
- 标准图集-08CJ17快速软帘卷门 透明分节门 滑升门 卷帘门.pdf VIP
- 驭胜s350及电路图n351第三阶段2013-11-13分动器.pdf VIP
- 2025年安全生产考试题库(林业行业安全规范)试题集.docx VIP
- 检验科质量与安全管理制度培训学习资料.pptx VIP
文档评论(0)