C++设计模式
文章平均质量分 50
LYWY_XJL
这个作者很懒,什么都没留下…
展开
-
C++设计模式——外观模式
概述想想我们小时候玩的四驱车,里面的构造很复杂,马达,舵机,电池组等等,而我们控制它却非常简单,只要打开电池开关,他就可以跑。我们其实不用知道它里面是如何工作,只要知道拨动开关它就可以工作就行了,这个开关其实就四驱车给我们的一个友好的组件,使得我们可以很方便的控制它。外观模式其实定义了一个高层接口,该接口为子系统中的一组接口提供一个一致的界面,使得这一子系统更加容易使用。在这个对象图中,出...原创 2018-11-06 21:23:36 · 150 阅读 · 0 评论 -
C++设计模式——模板方法模式
设计模式 - 模版方法场景小张的团队最近接受一个需求,实现实现一家咖啡店的冲泡咖啡和茶的冲泡自动化。之前这家咖啡店都是由咖啡师傅手动进行调制咖啡和茶。现在咖啡店需要引入自动化的点单和调制饮料的系统,小张负责实现调制饮料的功能。咖啡师傅手工冲泡咖啡和茶的流程:冲泡咖啡:把水煮沸用沸水冲泡咖啡把咖啡倒入杯子加糖和牛奶冲泡茶:把水煮沸用沸水冲泡茶叶把茶倒入杯子加柠檬小张先简单...原创 2018-11-08 19:37:53 · 131 阅读 · 0 评论 -
C++程序设计模式——适配器模式
适配器模式属于结构型的设计模式,它是结构型设计模式之首(用的最多的结构型设计模式)。适配器设计模式也并不复杂,适配器它是主要作用是将一个类的接口转换成客户希望的另外一个接口这样使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式有两种:1.类的适配器 2.对象适配器,对象适配器更多一些。类适配器:由图中可以看出,Adaptee类没有Request方法,而客户期待这个方法。为了...原创 2018-11-08 19:32:17 · 131 阅读 · 0 评论 -
C++设计模式——观察者模式
Observer 模式应该可以说是应用最多、影响最广的模式之一,因为 Observer 的一个实例 Model/View/Control( MVC) 结构在系统开发架构设计中有着很重要的地位和意义, MVC实现了业务逻辑和表示层的解耦。在 MFC 中, Doc/View(文档视图结构)提供了实现 MVC 的框架结构。在 Java 阵容中, Struts 则提供和 MFC 中 Doc/View 结构...原创 2018-11-11 21:55:10 · 563 阅读 · 1 评论 -
C++实现信号和槽机制
主要通过,C++实现类型QT信号和槽的问题设计思路:1、利于模板函数和模板类的通用性2、bind的时候,将槽函数指针保存,触发时调用代码如下:#include <algorithm>#include <iostream>#include <vector>using namespace std; #define Connect(sender, ...原创 2018-11-13 16:39:15 · 2116 阅读 · 0 评论 -
C++设计模式——装饰器模式
装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能。在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰器模式刚开始看非常难看懂。其实可以想象这种模式如同数据结构的链表,也可以想象成贪吃蛇。一个类被不停地装饰,相当于在其尾不停地添加结点,最后在读取这个类的时候,犹如读取链表,由于next指针的存在,将会一...原创 2018-11-05 20:25:13 · 103 阅读 · 0 评论 -
C++设计模式——代理模式
代理模式:为其他对象提供一种代理以控制对这个对象的访问。这样实现了业务和核心功能分离。角色:Subject: 抽象角色。声明真实对象和代理对象的共同接口。Proxy: 代理角色。代理对象与真实对象实现相同的接口,所以它能够在任何时刻都能够代理真实对象。代理角色内部包含有对真实对象的引用,所以她可以操作真实对象,同时也可以附加其他的操作,相当于对真实对象进行封装。RealSubject: ...原创 2018-11-05 20:14:41 · 93 阅读 · 0 评论 -
C++设计模式——单例模式
单例模式单例模式,可以说设计模式中最常应用的一种模式了,据说也是面试官最喜欢的题目。但是如果没有学过设计模式的人,可能不会想到要去应用单例模式,面对单例模式适用的情况,可能会优先考虑使用全局或者静态变量的方式,这样比较简单,也是没学过设计模式的人所能想到的最简单的方式了。一般情况下,我们建立的一些类是属于工具性质的,基本不用存储太多的跟自身有关的数据,在这种情况下,每次都去new一个对象,即增...原创 2018-11-05 19:56:22 · 518 阅读 · 1 评论 -
C++设计模式——工厂方法模式和抽象工厂方法模式
一、工厂方法模式上面的简单工厂模式的缺点是当新增产品的时候就要去修改工厂的类,这就违反了开放封闭原则,(类、模块、函数)可以扩展,但是不可以修改,于是,就出现了工厂方法模式。所谓工厂方法模式,是指定义一个用于创建对象的接口,让子类决定实例化哪一个类。#define _CRT_SECURE_NO_WARNINGS #include <iostream>using namesp...原创 2018-11-05 19:46:03 · 229 阅读 · 0 评论 -
C++设计模式——简单工厂模式(2)
#define _CRT_SECURE_NO_WARNINGS #include <iostream>using namespace std;//抽象的水果类class Fruit{public: virtual void getName() = 0;};class Apple :public Fruit{public: virtual void getN...原创 2018-11-05 19:25:31 · 223 阅读 · 0 评论 -
C++设计模式——简单工厂模式(1)
所谓简单工厂模式,是一种实例化对象的方式,只要输入需要实例化对象的名字,就可以通过工厂对象的相应工厂函数制造你所需要的对象。简单工厂模式的核心是:对于一个父类对象的多个继承子类,工厂对象的工厂函数根据用户的输入,自动new出一个子类对象并返回一个父类指针,这样利用父类的指针执行父类的虚函数,就可以动态绑定子类的重写函数,从而实现多态。#define _CRT_SECURE_NO_WARNIN...原创 2018-11-05 19:22:33 · 87 阅读 · 0 评论 -
C++设计模式——设计原则
c++设计模式原则原创 2018-11-05 19:04:33 · 146 阅读 · 0 评论 -
C++设计模式——策略模式
Strategy策略模式作用:定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。UML图:Strategy模式将逻辑(算法)封装到一个类(Context)里面,通过组合的方式将具体算法的实现在组合对象中实现,再通过委托的方式将抽象接口的实现委托给组合对象实现将算法的逻辑抽象接口(DoAction)封装到一个类中(Context),再通过委...原创 2018-11-10 12:04:30 · 125 阅读 · 0 评论 -
C++设计模式——命令模式
1定义将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求队列或者记录请求日志,可以提供命令的撤销和恢复功能2类图角色描述:Receiver接受者角色,就是干活的码农,命令传递打这里就应该被执行。Command命令角色,对命令额封装,所有命令声明在此Invoker调用者角色,接受到命令并且执行命令class Receiver{protected: R...原创 2018-11-10 11:34:16 · 126 阅读 · 0 评论 -
C++设计模式——模板方法模式
1定义定义一个操作的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。实现方案:将算法/逻辑框架放在抽象基类中,并定义好实现接口,在子类中实现细节接口。注:策略模式,解决的是相同的问题,只是其方案是将各个接口封装为类,通过委托/组合方式解决问题2类图3.实现#define _CRT_SECURE_NO_WARNINGS #inc...原创 2018-11-10 11:05:22 · 109 阅读 · 0 评论 -
在vs中使用Qt连接SQLServer数据库
更多0c++数据库//1.添加SQL库:“Qt project setting”–>“Qt Modules”,在SQL library复选框前打勾.//2.添加头文件#include#include <QtSql/QSqlDatabase>#include <QtSql/QSqlTableModel>#include<QtSql/QSqlError...原创 2019-06-13 09:33:55 · 2097 阅读 · 0 评论