
c++/qt设计模式
文章平均质量分 62
SuperYang_
山高人为峰
展开
-
Qt自定义步骤引导按钮
实际在开发项目过程中,由一些流程比较繁琐,为了给客户更好的交互体验,往往需要使用step1->step2这种引导对话框或者引导按钮来引导用户一步步进行设置;实现起来其实也并不复杂,主要是对外接口可以设置多个标题文本,以及当前高亮显示的索引即可。原创 2024-12-28 12:13:27 · 365 阅读 · 0 评论 -
c++如何实现类名创建类对象(反射)
c++开发过程中使用工厂模式创建各种类对象的时候可能需要写一堆的’if-else’函数来根据传入的参数类型创建不同的类对象;步骤: 1> 创建一个单例工厂类, 类中维护一个类名和创建对应类的回调函数的映射关系(map) 2> 需要创建的时候根据传入的类名参数查找对应的回调函数来创建类。这样的效果. 其实就是JAVA中的反射机制的体现, 实际c++本身是不支持的, 但是可以通过曲线救国的方式来实现.核心: 通过回调函数来实现创建.原创 2023-08-07 20:27:37 · 934 阅读 · 1 评论 -
c++/qt设计模式-装饰者模式
文章中部分内容和思路来自《Head First设计模式》模式定义动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案模式类图典型案例1.案例说明去咖啡店喝咖啡,我们可以要求店员在咖啡中加各种调味品,如牛奶、摩卡等。我们可以将这些调味品称为装饰2.代码实现------------IComponent.h------------#ifndef ICOMPONENT_H#defi...原创 2018-02-08 11:00:15 · 739 阅读 · 0 评论 -
c++/qt设计模式-命令模式
文章中部分内容和思路来自《Head First设计模式》模式定义将"请求"封装成对象,以便使用不同的请求、队列或日志来参数化其他对象。命令模式也支持可撤销的模式类图典型案例1.案例说明假设客户去银行办理存取款业务,业务员根据客户业务的不同对客户账户进行存取款操作。在这个案例中,我们可以将业务员看做命令的发出者,客户账号看做命令接收者,具体命令是存款取款2.代码实现----------ICommon...原创 2018-02-08 09:49:09 · 2042 阅读 · 1 评论 -
c++/qt设计模式-观察者模式
气象局需要我们构建一套系统,该系统有两个公告牌,分别用于显示当前天气状况(湿度、温度、气压)和未来几天的天气预报。当气象局发布新的天气数据时,公告牌能根据发布的天气数据即时更新。系统应该分为三个部分,其中气象站时刻采集实时天气信息,并将天气数据传送给WeatherData对象,WeatherData根据传送的数据不同状态不断变化,公告牌根据WeatherData的数据变化更新显示。定义了对象之间一对多的依赖,这样一来,当一个对象状态改变时,它的所有依赖者都会收到通知并自动更新。原创 2018-01-12 10:36:02 · 3970 阅读 · 1 评论 -
c++/qt设计模式-模板方法模式
文章中部分内容和思路来自《Head First设计模式》模式定义在一个方法中定义一个方法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。模式类图典型案例1.需求说明客户去银行办理业务的基本流程一致,都是先取号排队,然后在柜台办理相关业务,最后给出评价。其中不同客户办理的业务可能不同,我们放到子类中去实现2.代码实现-------------...原创 2018-02-05 14:11:47 · 1513 阅读 · 1 评论 -
c++/qt设计模式-适配器模式
文章中部分内容和思路来自《Head First设计模式》模式定义将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间模式类图1.对象适配器:2.类适配器:[ps:对象适配器和类适配器使用了两种不同的适配方式,对象适配器使用组合实现适配,类适配器使用继承实现适配]典型案例1.案例需求不同国家的充电头和插座的设计标准不同,例如中国采用两孔扁平的插头和插座,而德国习惯使用三...原创 2018-02-05 16:36:48 · 948 阅读 · 0 评论 -
c++/qt设计模式-外观模式
文章中部分内容和思路来自《Head First设计模式》模式定义提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。模式类图典型案例1.案例说明在我们使用电脑的过程中,我们只需要按下电源键整个电脑就能正常开机工作。关于机器内部各部件的工作情况我们并不关心,这就是外观模式的一种体现。2.代码实现----------Computer.h----------#i...原创 2018-02-06 09:48:34 · 797 阅读 · 2 评论 -
c++/qt设计模式-组合模式
文章中部分内容和思路来自《Head First设计模式》模式定义允许你将对象组合成树形结构来表现"整体/部分"层次结构。组合能让客户以一致的方式处理个别对象以及对象组合模式类图典型案例1.案例说明组合模式的条件比较苛刻,能够很好反应该模式的一个案例是对于计算机文件系统的遍历。《Head First》中举了一个菜单和菜单项的例子,大同小异2.代码实现------File.h------#ifndef...原创 2018-02-06 13:19:20 · 2244 阅读 · 1 评论 -
c++/qt 23种设计模式
模式分类23种模式传送门命令模式:http://blog.youkuaiyun.com/superyang_/article/details/79286046外观模式:http://blog.youkuaiyun.com/superyang_/article/details/79267148组合模式:http://blog.youkuaiyun.com/superyang_/article/details/79269497观察者模......原创 2018-02-09 09:45:42 · 4263 阅读 · 0 评论 -
c++/qt设计模式-迭代器模式
文章中部分内容和思路来自《Head First设计模式》模式定义提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露其内部表示模式类图典型案例1.案例说明中国象棋棋盘上有32颗棋子,提供一种对32颗棋子顺序遍历的方式2.代码实现-------------IChessBoard.h-------------#ifndef ICHESSBOARD_H#define ICHESSBOARD_H#inc...原创 2018-02-09 10:12:43 · 687 阅读 · 0 评论