随笔分类 -  C++_设计模式

摘要:首先介绍一下单例模式: 单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据 阅读全文
posted @ 2019-06-21 19:34 追风的小蚂蚁 阅读(199) 评论(0) 推荐(0) 编辑
摘要:C++中代理模式也称为Proxy模式,是构造性的设计模式之一,它可以为其他对象提供一种代理,以控制对这个对象的访问。、 所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后)完成某些特别的处理。 代理模式一般会有以下 阅读全文
posted @ 2019-06-21 14:34 追风的小蚂蚁 阅读(113) 评论(0) 推荐(0) 编辑
摘要:概述: 抽象工厂方法是工厂方法模式的延伸,它提供了功能更为强大的工厂类并且具备较好的可扩展性; 优点: 1、抽象工厂模式隔离了具体类的生成,使得客户端并不需要知道什么被创建。 2、当一个产品族中的多个对象被设计成一起工作时,它能够保证客户端始终只使用同一产品族中的对象; 3、增加新的产品族很方便,无 阅读全文
posted @ 2019-06-21 10:02 追风的小蚂蚁 阅读(140) 评论(0) 推荐(0) 编辑
摘要:工厂方法模式 先看一下最原始的程序伪代码: MainForm1.cpp: Splitter1.cpp: 当有需求了: MainForm2.cpp: Splitter2.cpp: SplitterFactory.cpp: 工厂模式的应用前景: 1.工厂模式的目的是为了实现解耦,将对象的创建和使用分开, 阅读全文
posted @ 2019-06-20 20:56 追风的小蚂蚁 阅读(262) 评论(0) 推荐(0) 编辑
摘要:“单一职责”模式:在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。 典型模式.Decorator.Bridge 1.Decorator模式 代码1: 该代码有什么问题? 冗余度太高! 示意图: 该类的规模有多 阅读全文
posted @ 2019-06-20 19:14 追风的小蚂蚁 阅读(169) 评论(0) 推荐(0) 编辑
摘要:“组件协作”模式:>现代软件专业分工之后的第一个结果是“框架与应用程序的划分”“组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。>典型模式. Template Method. Strategy. Observer/ Event 例: 在一个窗口中添加进度条 阅读全文
posted @ 2019-06-20 14:53 追风的小蚂蚁 阅读(202) 评论(0) 推荐(0) 编辑
摘要:动机( Motivation )>在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂,而且有时候支持不使用的算法也是一个性能负担。>如何在运行时根据需要透明地更改对象的算法?将算法与对象本身解耦,从而避免上述问题? 普通结构式程序: 策略 阅读全文
posted @ 2019-06-20 09:50 追风的小蚂蚁 阅读(128) 评论(0) 推荐(0) 编辑
摘要:1、设计模式的使用场景 模板方法模式(Template Method) 解释一下模板方法模式,就是指:一个抽象类中,有一个主方法,再定义1…n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用,先看个关系图: 左为结构化软件设计流程,右 阅读全文
posted @ 2019-06-19 20:26 追风的小蚂蚁 阅读(118) 评论(0) 推荐(0) 编辑
摘要:重新认识面向对象: >理解隔离变化 ·从宏观层面来看,面向对象的构建方式更能适应软件的变化,能将变化所带来的影响减为最小>各司其职从微观层面来看,面向对象的方式更强调各个类的“责任”由于需求变化导致的新增类型不应该影响原来类型的实现--是所谓各负其责>对象是什么?从语言实现层面来看,对象封装了代码和 阅读全文
posted @ 2019-06-19 16:02 追风的小蚂蚁 阅读(202) 评论(0) 推荐(0) 编辑
摘要:深入理解面向对象: 向下:深入理解三大面向对象机制 封装,隐藏内部实现 继承,复用现有代码 多态,改写对象行为 向上:深刻把握面向对象机制所带来的抽象意义,理解如何将这些机制来表达现实世界,掌握什么是“好的面向对象设计” 软件设计复杂的根本原因: 客户需求的变化技术平台的变化开发团队的变化市场环境的 阅读全文
posted @ 2019-06-19 15:05 追风的小蚂蚁 阅读(141) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示