自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (5)
  • 收藏
  • 关注

原创 桥接模式

一、桥接模式简介1、桥接模式简介桥接模式将抽象(Abstraction)与实现(Implementation)分离,使得二者可以独立地变化。桥接模式将抽象和实现分别独立实现,即Abstraction类和Implement类。桥接模式中的实现不是指抽象基类的具体子类对抽象基类中虚函数(接口)的实现,是指怎么去实现用户的需求,即在Implement具体类中实现Abstraction的接口功能,并且是通过组合(委托)的方式实现的,因此桥接模式中实现不是指的继承基类、实现基类...

2021-05-05 16:11:15 1753

原创 外观模式

一、外观模式简介1、外观模式简介为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。根据单一职责原则,在软件系统中将一个系统划分成为若干个子系统有利于降低系统的复杂性。一个常见的设计目标是使子系统间的通信和相互依赖关系达到最小。达到该目标的途径之一是就是引入一个外观(Facade)对象,外观类为子系统中较一般的设施提供了一个单一而简单的界面。将各个子系统整合起来作为Facade,提供给客户端使用。外观模式...

2021-05-05 14:23:48 111

原创 代理模式

一、代理模式简介1、代理模式简介代理模式是为其他对象提供一种代理以控制对对象的访问。常见代理模式如下:A、远程(Remote)代理:为一个位于不同的地址空间的对象提供一个局域代表对象。不同的地址空间可以是在本机器中,也可是在另一台机器中。远程代理又叫做大使(Ambassador),为一个对象在不同的地址空间提供局部代表,可以隐藏一个对象存在于不同地址空间的事实。B、虚拟(Virtual)代理:根据需要创建一个资源消耗较大的对象,使得此对象只在需要时才会被真...

2021-05-05 12:55:02 561

原创 装饰模式

一、装饰模式简介1、装饰模式简介装饰器模式可以动态地给一个对象添加一些额外的职责。装饰模式的特点:A、装饰对象和真实对象有相同的接口。客户端对象可以使用和真实对象相同的方式和装饰对象交互。B、装饰对象包含一个真实对象的索引(reference)C、装饰对象接受所有的来自客户端的请求,并把请求转发给真实的对象。D、装饰对象可以在转发来自客户端的请求以前或以后增加一些附加功能。可以确保在运行时,不用修改给定对象的结构就可以在外部增加附加的功...

2021-05-05 11:38:11 231

转载 原型模式

一、原型模式简介1、原型模式简介原型模式使用原型实例指定创建对象的种类,并且通过拷贝原型对象创建新的对象。Prototype模式提供了一个通过已存在对象进行新对象创建的接口(clone),clone()实现和具体的语言相关,在C++中通过拷贝构造函数实现。原型模式实际上就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。在初始化的信息不发生变化的情况下,克隆是最好的办法,既隐藏了对象创建的细节,又大大提高了性能。因为如果不用clone,每次new...

2021-05-03 15:17:38 60

原创 创造者模式

一、建造者模式简介1、建造者模式简介建造者模式将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。建造者模式和抽象工厂模式在功能上很相似,都是用来创建大的复杂的对象,区别是:建造者模式强调的是一步步创建对象,并通过相同的创建过程可以获得不同的结果对象,一般来说建造者模式中对象不是直接返回的。而在抽象工厂模式中对象是直接返回的,抽象工厂模式强调的是为创建多个相互依赖的对象提供一个同一的接口。建造者模式最主要功能是基本方法的调用顺序安排,即对象的组装顺序...

2021-05-03 09:30:38 788

原创 抽象工厂

一、抽象工厂模式1、抽象工厂模式简介定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。UML类图:2、抽象工厂模式角色(1)抽象工厂AbstractFactory:抽象工厂类,提供创建两种产品的接口CreateProductA和CreateProductB,由派生的各个具体工厂类对其实现(2)具体工厂:包括具体工厂FactoryM和具体工厂FactoryN。具体工厂FactoryM用于生产具体产品MProductA和具体产品MProductB...

2021-05-03 08:03:58 119

原创 工厂方法

一、工厂方法模式简介1、工厂方法模式简介工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法将一个类的实例化延迟到其子类。对每一个子类产品都分别对应一个工厂子类,用来创建相应的产品,若增加了新的产品,只需相应增加工厂子类即可。工厂方法模式去掉了简单工厂模式中工厂方法的静态属性,使得工厂方法可以被子类继承。工厂方法模式特点:(1)工厂方法模式是对简单工厂模式的稍微的改进。工厂方法模式的用意是定义一个...

2021-05-02 23:11:44 2611

原创 简单工厂

一、简单工厂模式简介1、简单工厂模式简介简单工厂模式(Simple Factory Pattern)属于创建型模式,又称静态工厂方法(Static Factory Method)模式,是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式UML图如下:简单工厂模式解决的问题是如何去实例化一个合适的对象。简单工厂模式的核心思想就是:有一个专门的类来负责创建实例的...

2021-05-02 22:54:33 119

转载 适配器模式

Adapter适配器模式作用:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。分为类适配器模式和对象适配器模式。系统的数据和行为都正确,但接口不符时,我们应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。想使用一个已经存在的类,但如果它的接口,也就是它的方法和你的要求不相同时,就应该考虑用适配器模式。比如购买的第三方开

2021-05-02 17:25:08 61

原创 策略模式

策略模式---使用C++ 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。本文介绍策略模式的实现。 策略模式是指定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算...

2021-05-02 17:05:28 73

原创 观察着模式

观察者模式 详解Observer 模式应该可以说是应用最多、影响最广的模式之一,因为 Observer 的一个实例 Model/View/Control( MVC) 结构在系统开发架构设计中有着很重要的地位和意义, MVC实现了业务逻辑和表示层的解耦。在 MFC 中, Doc/View(文档视图结构)提供了实现 MVC 的框架结构。在 Java 阵容中, Struts 则提供和 MFC 中 Doc/View 结构类似的实现 MVC 的框架。另外 Java 语言本身就提供了 Observer 模式的实现接

2021-05-02 16:24:34 86

原创 单例模式

C++实现线程安全的单例模式1、单例模式  一个简单的单例模式很容易实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法代劳,该方法也返回单例类唯一的实例。class singleton{protected: singleton(){}private: static singleton* p;public: static singleton* in...

2021-05-02 16:05:11 82

原创 1130-host xxx is not allowed to connect to this MySql server 错误解决办法

1、现象描述:报错:1130-host ... is not allowed to connect to this MySql server。2、原因分析数据库搭建起来默认只能localhost连接,此时需要开放权限。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表...

2019-10-12 13:33:57 1213

原创 Navicat连接MySQL8+时出现2059错误解决方法

1、现象描述:在用Navicat Premimu 12连接MySQL8+时会出现2059错误:2、原因分析:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,但此时的Navicat Premimu 12还没有支持这种验证方式。3、解决办法解决方法就是将验证方式改为...

2019-10-12 13:32:21 471

原创 CStdioFile::WriteString 不能写入中文问题

解决办法:                    (1)、将写入字符串转换编码为:ANSI char* pBuffer = NULL; long lBufferSize; lBufferSize = WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS, m_sRtf, -1, NULL, 0, NULL, NULL); pBuf

2014-09-04 17:01:15 3065

转载 MAC系统下配置环境变量

为了更方便的在电脑上用adb/fastboot命令(您可能是用来调试、用来刷机抑或是用adb安装卸载软件来装13),您需要配置环境变量。为此,您需要准备Mac(Linux的配置类似)一台;工作正常的手机数据线一根;android SDK for Mac (墙外下载)===========adb配置方法==============1. 下载android SDK并

2012-03-23 18:54:55 1309

原创 error C2660: “Gdiplus::GdiplusBase::operator new”: 函数不接受 3 个参数

今天用IMageEx来向窗口显示动画,用到了GDI+;结果遇到了    error C2660: “Gdiplus::GdiplusBase::operator new”: 函数不接受 3 个参数       这个编译错误!        上网查了看一个网友说的是:     找到解决方案,原来是微软的 DEBUG_NEW  和 GDI+ 不匹配造成的。完整的解决方案

2012-01-19 11:17:15 8640 2

原创 VC2005/2008 此网站的某个加载项运行失败,请检查“Internet选项 ”中的安全设置是否存在潜在冲突

Some VS2005 and VS2008 Wizards Pop Up Script Error.Visual C++ team has discovered that after installing the current release of Internet Explorer (Internet Explorer 8), some VC++ wizards do not funct

2011-11-10 18:04:25 4463

转载 WM_TIMER 消息的问题

问题内容:关于定时器消息WM_TIMER的认识,如间隔时间多于一秒,要考虑数据的同步呢?如果某个间隔为一秒的定时器在OnTimer中需要处理的时间多于一秒,那么应该会出现这段处理过程的重复执行,那么要不要考虑数据的同步呢?--------------------------------------------------------------- WM_TIMER消息会被忽略,

2011-11-02 11:32:52 3336

原创 XMPP协议简介

XMPP协议简介  可扩展消息处理现场协议(eXtensible Messaging and Presence Protocol , XMPP)是一种基于可扩展标记语言(eXtensible Markup Language, XML)的近端串流式即时通信协议。它将现场和上下文敏感信息标记嵌入到XML 结构化数据中, 使得人与人之间、应用系统之间以及人与应用系统之间能即时相互通信。XMPP

2011-10-28 11:25:18 747

转载 单链表的反转

链表反转单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题。比如一个链表是这样的: 1->2->3->4->5 通过反转后成为5->4->3->2->1。最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前

2011-09-25 22:59:22 635 1

原创 字符串匹配算法

看了数据结构,下面把暴力匹配、KMP算法的实现记录下来,备忘(1)暴力匹配int findsubstr(char *strmain,char *strsub){ int pos = -1; if (strmain==NULL||strsub==NULL) {

2011-09-25 14:53:09 331

原创 链式队列的简单实现

//Link Queue Implementtypedef struct QNode{ Type data; QNode *pNext;}QNode,*QuePtr;typedef struct{ QuePtr front; QuePtr rear;}Lin

2011-09-25 11:31:31 411

原创 利用栈实现的的进制转换

#include #include using namespace std;#define STACK_INIT_SIZE 100#define STACK_INCREMENT 10typedef int Type;typedef struct{ Type *

2011-09-25 11:02:16 499

原创 C#获取程序当前路径的方法

经常要获得当前应用程序的路径,原来一直用MFC写程序,转到C#有点不习惯,特将C#中获取程序当前路径的方法总结如下:(1)获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。string str =System

2011-09-21 17:54:17 355

原创 BMP文件格式详解

位图文件分为四部分:(1)文件头(BITMAP FILE HEADER)位图文件头(BITMAPFILEHEADER)是一个结构体,长度为14字节,定义为:typedef struct tagBITMAPFILEHEADER{    WORD bfType;

2011-09-18 13:49:51 407

原创 C#关闭程序询问是否退出

一直是用MFC写程序,突然用C#写,感觉有点吭爹的,啥都不晓得,如题:(1)首先消息响应为:FormClosing(2)在其实现中写的代码如下:他居然就给参数赋值,OX!      private void SeverPlugIn_FormClosing(ob

2011-09-15 17:49:12 3297

原创 C#最小化到系统托盘实现

目标:程序点击关闭后,弹出一个对话框,选择退出,最小化,或者取消.然后系统托盘双击,可以打开最小化的程序,右键有菜单,菜单里有个"选项",可以设置每次点击关闭按钮时是否弹出这个对话框.难点:增加一个"下次不再提示"的comboBox到对话框中.使用到的知识:1. 非模

2011-09-15 17:31:36 5380

原创 VC6.0与Office 2007冲突的解决办法

FileTool.exe 替换打开和添加到项目在 Visual c + + 中的功能http://support.microsoft.com/kb/241396/zh-cn昨天才发现,在VC6.0(With SP6)中点击File-Open无效,点击工具栏上的Open按钮

2011-09-14 13:36:23 3405

原创 VC++6.0如何设置使其支持Unicode编程

VC++ 6.0支持Unicode编程,但默认的是ANSI,所以开发人员只需要稍微改变一下编写代码的习惯便可以轻松编写支持UNICODE的应用程序。使用VC++ 6.0进行Unicode编程主要做以下几项工作: 1、为工程添加UNICODE和_UNICODE预处理选项。

2011-09-14 08:27:15 573

CEF General Usage-zh-cn.7z

CEF中文入门教程,根据官方英文文档翻译而来,使用7zip进行解压,在QT、MFC、Win32下嵌入浏览器控件的入门教程,非常不错。

2020-05-24

VS2015_cef81.3.10的win32和mfc使用demo.7z

在MFC和Win32工程种使用CEF控件的demo示范工程,可正常编译,供CEF初学者使用,资源包使用7zip压缩和解压。

2020-05-22

OpenCV3编程入门【毛星云著】【完整版】.7z

OpenCV3编程入门,高清pdf,学习入门必备!!

2019-06-02

基于曲率尺度空间的轮廓角点检测.7z

使用自适应阈值和支持动态区域的曲率尺度空间角点检测

2019-06-02

U盘测试工具上了地方空间

测试U盘的速度,测试U盘的容量,厂商,UID等你想要的信息,U盘量产,多线程生产等等,哎呀,你下来看了就知道了,好东西

2010-04-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除