Welcome 微信登录

首页 / 软件开发 / C++

设计模式的解析和实现(C++)之七-Bridge模式

设计模式的解析和实现(C++)之七-Bridge模式

设计模式的解析和实现(C++)之七-Bridge模式2010-11-06 cppblog 那谁作用:将抽象部分与它的实现部分分离,使它们都可以独立地变化。UML结构图:抽象基类:1)Abstraction:某个抽象类,它的实现方式由Implementor完成.2)Implementor:实现类的抽象基类,定义了实现Abastraction的基本操作,而它的派生类实现这些接口.接口函数:1)Implementor::OperationImpl:定义了为实现A...
完善CPopupText类

完善CPopupText类

完善CPopupText类2008-04-20赵湘宁“介绍一个有Toolbar功能的可重用类 CPopupText”。这篇文章的内容是关于在一个列表框中,如果列表框中数据项的文字长度超过了列表框本身的宽度,则会显示一个类似ToolTips的弹出提示,将超长的列表框数据项完整地显示出来(如图一)。文中给出的 CPopupText 类非常好用,但是该文章提供的例子代码——ListCtrl运行起来似乎有点问题,就是...
设计模式的解析和实现(C++)之八-Composite模式

设计模式的解析和实现(C++)之八-Composite模式

设计模式的解析和实现(C++)之八-Composite模式2010-11-06 cppblog 那谁作用:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。UML结构图:抽象基类:1)Component:为组合中的对象声明接口,声明了类共有接口的缺省行为(如这里的Add,Remove,GetChild函数),声明一个接口函数可以访问Component的子组件.接口函数...
为对话框中的控件增加提示的简单方法

为对话框中的控件增加提示的简单方法

为对话框中的控件增加提示的简单方法2008-04-20 VC知识库 zzb我学VC从VC知识库中得到不少好处,相来都是一些热心朋友们的帮助,在此表示感谢!本工程可分五步:1、建一个基于对话框的程序TipTest,在CTipTestDlg中增加成员变量:CToolTipCtrl m_tip[2],CWnd *m_pSub[2];2、在CTipTestDlg::OnInitDialog()函数中增加如下代码:pSub[0] = GetDlgItem(IDC_R...
设计模式的解析和实现(C++)之九-Decorator模式

设计模式的解析和实现(C++)之九-Decorator模式

设计模式的解析和实现(C++)之九-Decorator模式2010-11-06 cppblog 那谁作用:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator 模式相比生成子类更为灵活。UML结构图:抽象基类:1)Component:定义一个对象接口,可以为这个接口动态的添加职责.2)Decorator:维持一个指向Component的指针,并且有一个和Component一致的接口函数....
设计模式的解析和实现(C++)之十-Proxy模式

设计模式的解析和实现(C++)之十-Proxy模式

设计模式的解析和实现(C++)之十-Proxy模式2010-11-06 cppblog 那谁作用:为其他对象提供一种代理以控制对这个对象的访问。UML结构图:抽象基类:1)Subject:定义了Proxy和RealSubject的公有接口,这样就可以在任何需要使用到RealSubject的地方都使用Proxy.解析:Proxy其实是基于这样一种时常使用到的技术-某个对象直到它真正被使用到的时候才被初始化,在没有使用到的时候就暂时用Proxy作一个占位符.这...
SNMP的一些点滴

SNMP的一些点滴

SNMP的一些点滴2009-10-06一:我该如何创建自己的MIB?首先:要定义自己的MIB,要先熟悉ASN.1的语法,其中有个老外的一本MIB书很好,MIB的RFC文档就是它定义的好像。其次:多看其他的MIB,其实定义比较简单,就是TYPE,标量,表三个主要的东西。二:我实现一个代理进程,如果捕获SNMP的端口信息那同一机器上另外的代理进程不就没办法捕获管理信息了吗?我的代理进程只对特定的OID进行服务,如果不属于我的OID,我如何将其交给系统中存在的其...
设计模式的解析和实现(C++)之十一-TemplateMethod模式

设计模式的解析和实现(C++)之十一-TemplateMethod模式

设计模式的解析和实现(C++)之十一-TemplateMethod模式2010-11-06 cppblog 那谁作用:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod 使得子类可以不改变一个算法的结构即可重定义该的某些特定步骤。UML结构图:抽象基类:1)AbstractClass:抽象基类,定义算法的轮廓解析:TemplateMethod 的关键在于在基类中定义了一个算法的轮廓,但是每一步具体的实现留给了派生类.但是这样...
用Visual C++设计“精灵”窗体

用Visual C++设计“精灵”窗体

用Visual C++设计“精灵”窗体2009-10-06随着Microsoft凭借Windows在操作系统上取得的巨大成绩,Windows用户界面也日益成为业界标准。统一的界面给广大用户对应用软件的学习与使用带来了很大方便。但每天都面对同一副面孔,日久天长难免会产生一些厌倦,想开发一些"离经叛道"的应用程序,如果能够一改Windows千篇一律的"标准"界面,一定会给用户带来一种清新的感觉。标准Windows应用程序...
设计模式的解析和实现(C++)之十二-ChainOfResponsibility模式

设计模式的解析和实现(C++)之十二-ChainOfResponsibility模式

设计模式的解析和实现(C++)之十二-ChainOfResponsibility模式2010-11-06 cppblog 李创作用:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止.UML结构图:抽象基类:1)Handler:定义一个处理请求的接口,在图中这个接口就是HandleRequset函数,这个类同时有一个指向Handler对象的指针,指向后续的处理请求的...
设计模式的解析和实现(C++)之十三-FlyWeight模式

设计模式的解析和实现(C++)之十三-FlyWeight模式

设计模式的解析和实现(C++)之十三-FlyWeight模式2010-11-06 cppblog 李创作用:运用共享技术有效地支持大量细粒度的对象。UML结构图:解析:Flyweight模式在大量使用一些可以被共享的对象的时候经常使用.比如,在QQ聊天的时候很多时候你懒得回复又不得不回复的时候,一般会用一些客套的话语敷衍别人,如"呵呵","好的"等等之类的,这些简单的答复其实每个人都是提前定义好的,在使用的时候才调用...
设计模式的解析和实现(C++)之十四-Command模式

设计模式的解析和实现(C++)之十四-Command模式

设计模式的解析和实现(C++)之十四-Command模式2010-11-06 cppblog 李创作用:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作.UML结构图:解析:Comnand模式的思想是把命令封装在一个类中,就是这里的Command基类,同时把接收对象也封装在一个类中就是这里的Receiver类中,由调用这个命令的类也就是这里的Invoker类来调用.其实,如果弄清楚了Comma...
VC开发数据库基础之ADO篇

VC开发数据库基础之ADO篇

VC开发数据库基础之ADO篇2009-10-06一、ADO简介ADO(ActiveXDataObject)是Microsoft数据库应用程序开发的新接口,是建立在OLEDB之上的高层数据库访问技术,请不必为此担心,即使你对OLEDB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBCAPI、DAO、RDO都要容易使用,并不失灵活性。本文将详细地介绍在VC下如何使用ADO来进行数据库应用程序开发,并给出示例代码。本文示例代码二、...
设计模式的解析和实现(C++)之十五-Observer模式

设计模式的解析和实现(C++)之十五-Observer模式

设计模式的解析和实现(C++)之十五-Observer模式2010-11-06 cppblog 李创作用:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新.UML结构图:解析:Observer模式定义的是一种一对多的关系,这里的一就是图中的Subject类,而多则是Obesrver类,当Subject类的状态发生变化的时候通知与之对应的Obesrver类们也去相应的更新状态,同时支持动态的添加和删除Ob...
设计模式的解析和实现(C++)之十六-Strategy模式

设计模式的解析和实现(C++)之十六-Strategy模式

设计模式的解析和实现(C++)之十六-Strategy模式2010-11-06 cppblog 李创作用:定义一系列的,把它们一个个封装起来, 并且使它们可相互替换.本模式使得算法可独立于使用它的客户而变化.解析:简而言之一句话,Strategy模式是对算法的封装.处理一个问题的时候可能有多种算法,这些的接口(输入参数,输出参数等)都是一致的,那么可以考虑采用Strategy模式对这些算法进行封装,在基类中定义一个函数接口就可以了.实现:1)Strateg...
在DLL中使用资源

在DLL中使用资源

在DLL中使用资源2009-10-06现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题。这里我们从Win32 DLL和MFC DLL两个方面来分析并解决这个问题。1.Win32 DLL在Win32 DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件。然后使用DialogBox或者CreateDialog这两个函数(或相同作用的其它函数)来创建对话...
<< 221 222 223 224 225 226 227 228 229 230 >>