- 博客(14)
- 资源 (18)
- 问答 (1)
- 收藏
- 关注
原创 设计模式学习之路(C++实现)
(本博客旨在个人总结回顾)1、概括: 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、增强代码可读性、保证代码可靠和易扩展。2、类型:(GOF 23种设计模式)2.1 创建型模式:2.1.1 工厂方法模式(Factory Pattern)(建议了解一下简单工厂模式)简要说明:定义一个用于创建对象的接口,让...
2019-08-15 16:48:30 2536
原创 访问者模式(C++实现)
(本博客旨在个人总结回顾)1、详情:访问者模式:表示一个作用于某对象结构中各元素的操作。它可以使你在不改变这些元素的类的前提下,定义作用于这些元素的新操作。说明:优点:①符合单一职责原则。②优秀的扩展性、灵活性。缺点:①具体元素对访问者公布细节,违反了迪米特原则。②具体元素变更比较困难。③违反了依赖倒置原则,依赖了具体类,没有依赖抽象。使用场景:...
2019-08-15 16:47:58 290
原创 模板方法模式(C++实现)
(本博客旨在个人总结回顾)1、详情:策略模式:定义一个操作中的算法骨架,将一些步骤延时到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。说明:主要解决:一些方法通用,却在每一个子类都重新写了这一方法。优点:①封装不变部分,扩展可变部分。②提取公共代码,便于维护。③行为由父类控制,子类实现。缺点:每一个不同的实现都需要一...
2019-08-14 18:23:02 185
原创 策略模式(C++实现)
(本博客旨在个人总结回顾)1、详情:策略模式:定义一系列算法,把它们一个个封装起来,使得它们可以相互替换。策略模式使得算法变化可独立于使用它的用户。说明:优点:①算法可以自由切换。②避免使用多重条件判断。③扩展性良好。缺点:①策略类会增多。②所有策略类都需要对外暴露。2.1、UML类图:2.2、例子源码stdafx.h// st...
2019-08-14 17:34:25 1661
原创 状态模式(C++实现)
(本博客旨在个人总结回顾)1、详情:状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎改变了它所属的类。说明:主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。优点:①封装了转换规则。②枚举可能的状态,在枚举状态之前需要确定状态种类。③将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需...
2019-08-14 16:11:39 381
原创 观察者模式(C++实现)
(本博客旨在个人总结回顾)1、详情:观察者模式:定义对象间一种一对多的依赖关系,以便当该对象状态发生改变时,所有依赖它的对象都得到通知并自动刷新。说明:优点:①观察者和被观察者是抽象耦合的。②建立一套触发机制。缺点:①如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。②如果在观察者和观察目标之间有循环依赖的话,观察目标会触...
2019-08-14 11:43:17 1076
原创 备忘录模式(C++实现)
(本博客旨在个人总结回顾)1、详情:备忘录模式:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原保存的状态。说明:优点:①给用户提供了一种可以恢复状态的机制,可以使用户能够比较方便地回到某个历史的状态。②实现了信息的封装,使得用户不需要关心状态的保存细节。缺点:消耗资源。如果类的成员变量过多,势必会占用比较大的...
2019-08-07 20:05:57 247
原创 中介者模式(C++实现)
(本博客旨在个人总结回顾)1、详情:中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。说明:优点:①降低了类的复杂度,将一对多转化成了一对一。②各个类之间的解耦。③符合迪米特原则。缺点:中介者会庞大,变得复杂难以维护。使用场景:①系统中对象之间存在比较复杂的引用关系,导...
2019-08-07 17:54:36 951
原创 迭代器模式(C++实现)
(本博客旨在个人总结回顾)1、详情:迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而有不暴露该对象的内部表示。说明:优点:①它支持以不同的方式遍历一个聚合对象。②迭代器简化了聚合类。③在同一个聚合上可以有多个遍历。④在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码。缺点: 由于迭代器模式将存储数据和遍历数据的职责分...
2019-08-07 12:35:29 243
原创 解释器模式(C++实现)
(本博客旨在个人总结回顾)1、详情:解释器模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。说明:优点:①可扩展性比较好,灵活。②增加了新的解释表达式的方式。③易于实现简单文法。缺点:①可利用场景比较少。②对于复杂的文法比较难维护。③解释器模式会引起类膨胀。 ④解释器模式采用递归调用方法。使用场...
2019-08-05 20:00:08 532
原创 命令模式(C++实现)
(本博客旨在个人总结回顾)1、详情:命令模式:将一个请求封装成对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。说明:优点:①降低了系统耦合度。 ②新的命令可以很容易添加到系统中去。缺点:使用命令模式可能会导致某些系统有过多的具体命令类。使用场景:认为是命令的地方都可以使用命令模式,比如: ①GUI 中每一个按钮都是一条命令。 ②...
2019-08-05 16:47:06 254
原创 职责链模式(C++实现)
(本博客旨在个人总结回顾)1、详情:职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。说明:优点:①降低耦合度。它将请求的发送者和接收者解耦。②简化了对象。使得对象不需要知道链的结构。③增强给对象指派职责的灵活性。通过改变链内的成员或者调动它们的次序,允许动态地新...
2019-08-02 15:41:52 230
原创 代理模式(C++实现)
(本博客旨在个人总结回顾)1、详情:代理模式:为其他对象提供一个代理以控制对这个对象的访问。说明:优点:①职责清晰。 ②高扩展性。 ③智能化。缺点:①由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。 ②实现代理模式需要额外的工作,有些代理模式的实现非常复杂。使用场景:按职责来划分,通常有以下使用场景: ①远程代理。 ②虚拟代...
2019-08-02 12:22:15 596
原创 共享模式(C++实现)
(本博客旨在个人总结回顾)1、详情:共享模式:运用共享技术有效支撑大量细粒度的对象。说明:优点:大大减少对象的创建,降低系统的内存,使效率提高。缺点:提高了系统的复杂度,需要分离出外部状态和内部状态,而且外部状态具有固有化的性质,不应该随着内部状态的变化而变化,否则会造成系统的混乱。2.1、UML类图:2.2、例子源码stdafx.h// stdaf...
2019-08-01 20:08:05 482
qt多平台使用libexif库,查看图片f编译好的库,支持win64, linux-aarch64, linux-x64
2024-08-19
qpdf demo支持linux-x64,linux-aarch64,windows64
2024-08-14
cmake-3.29.7-linux-aarch64-cmake-3.30.2-linux-x86-64
2024-08-14
Qt5.12.11 QtWebEngine支持mp4例子
2022-12-21
mysql-8.0.17-winx64.rar
2020-05-16
QT+vs+directshow获取摄像头名称及其支持的分辨率
2018-06-20
visualAssistXVS2013
2018-04-04
QT高级编程文档
2018-04-04
NSIS工具(安装打包工具中文版)
2018-04-04
QT使用操作word(包含VB操作word的参考文档)
2017-11-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人