- 博客(61)
- 资源 (2)
- 收藏
- 关注
原创 关于std::stringsteam的clear与str方法
<! /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; ms
2009-02-17 11:03:00
3950
原创 记几个C++程序Memory Leak检查工具
个人用过的最好用的:· BoundsChecker商业软件,可惜似乎已经停止开发了(见http://blogs.msdn.com/matt_pietrek/archive/2007/06/11/r-i-p-numega-lab.aspx,但close lab似乎不一定意味着终止相关产品开发,但肯定会流失一些Experts/Master,而且其母公司现在的定位是一家IT服务公司,哎,多好的产品啊!可
2009-02-13 17:04:00
3398
原创 记boost应用中的几个有用的宏
BOOST_ALL_DYN_LINK 动态链接boost,而不是默认的静态链接。BOOST_LIB_DIAGNOSTIC 输出链接boost库的信息,便于开发者确认是否链接与期望的一致,且到底是哪个文件用到了相应的boost库。此外,在$BOOST_DIR/boost/config/auto_link.hpp及$BOOST_DIR/boost/config/user.hpp中还提到了很
2009-02-13 13:13:00
3078
原创 预告,刚写了篇关于设计模式与单元测试的文章
访问量增长太慢,排名又降了好些,对优快云的牢骚还是没有得到回应,哎......顺便预告一下,刚写了篇关于设计模式与单元测试的文章,已将大纲投稿到IBM developerworks,毕竟那里的用户量更大,但需要1-2周才知道是否可以提交稿件。上次将整个CORBA组件模型CCM系列投稿到developerworks没有得到任何响应(已经是两年前的事了,^_^),希望这次不会,告诉我不能采用
2008-06-19 15:15:00
1198
原创 我要投诉优快云 Blog!
投诉:优快云 Blog升级后原来链接的图片全部无法正常访问了。我的Blog最近两年没有更新过,目前的访问量统计在数万(也许里面有很大比例是搜索爬虫干的?),之前从来没有网友反映图片无法查看的问题,由此推断,原来的图片都是可以正常查看的,升级完后有以下问题:1、图片链接无效,原来的文件名都由o_xxx变成了r_xxx;2、原来的相对链接无法继续使用,似乎只有使用绝对URL(应该有别的方
2008-06-16 10:45:00
2379
原创 Java RPC通信机制之SOAP:应用Apache Axis进行Web Service开发
Java RPC通信机制之SOAP:应用Apache Axis进行Web Service开发一、概述SOAP原意为Simple Object Access Protocol(简单对象访问协议),是一个用于分布式环境的、轻量级的、基于XML进行信息交换的通信协议(SOAP is an XML based protocol used to exchange information throug
2006-08-18 22:57:00
22141
5
原创 Java RPC通信机制之XML-RPC:Apache XML-RPC 3.0开发简介
Java RPC通信机制之XML-RPC:Apache XML-RPC 3.0开发简介摘要:XML-RPC是一种简单的,轻量级的通过HTTP协议进行RPC通信的规范。本文以Apache XML-RPC 3.0为基础,对XML-RPC的基本原理及Apache XML-RPC 3.0的主要特性进行了讨论和分析。正文:一、概述XML-RPC是一种简单的,轻量级的通过HTTP协议进行R
2006-08-18 22:53:00
13939
3
原创 Java RPC通信机制之RMI
Java RPC通信机制之RMI 大卫注1:写完CORBA系列后,本想接着写写其它几种典型的远程通信协议:RMI、XML-RPC、SOAP,但由于工作的原因,加之房子装修等麻烦事,一直没有心情动笔。今天接到装修公司老板电话说开工证要晚几天办下来,要停工4-5天,狂怒后突然有了静下心来完成原本想写的东西的想法,既来之,则安之(i.e.郁闷啊,郁闷啊,就习惯了...)大卫注2:这个
2006-08-18 22:37:00
10322
原创 体验CORBA组件模型CCM:2、实例
体验CORBA组件模型CCM:2、实例摘要:通过一个简单的实例,详细介绍基于CIAO的CCM组件开发过程。正文:前面讲过,CCM是以EJB为蓝本来定义的,因此,二者在组件分类(与EJB被分为Session、Entity、Message Driven三种类型一样,CCM组件被分为Service、Session、Process、Entity四种类型)、组件的基本组成、开发/部署基本流程
2006-05-18 09:03:00
4234
1
原创 体验CORBA组件模型CCM:1、引言
体验CORBA组件模型CCM:1、引言摘要:在比较CORBA2.x与CORBA3.x的基础上,简要介绍CCM引入的新特性。一、概述虽然CORBA2.x已成功应用于诸多软件系统的开发,但CORBA2.x仅是一个分布式对象计算模型,并不是一个组件对象模型,OMG组织考虑到CORBA2.x存在的以下问题:· 缺乏功能分界在CORBA2.x对象模型中,所有的接口均被视
2006-05-18 08:43:00
4041
1
原创 CORBA Programming with TAO - 9.Postscript(后记)
CORBA Programming with TAO - 9.Postscript(后记)摘要:这是整个系列的最后一篇,对整个系列及该系列未涵盖的内容进行了总结,同时对CORBA及分布式对象计算技术的发展状况进行了简单分析。正文:CORBA本身是一个复杂的体系,本系列只是初步介绍了用TAO进行分布式CORBA应用的基础知识,并有选择性地略去了部分内容(如DynAny、POA Pol
2006-05-12 17:13:00
2759
原创 CORBA Programming with TAO - 8.Event Service(事件服务)
CORBA Programming with TAO - 8.Event Service(事件服务)摘要:事件服务(Event Service)通过在通信的双方甚至是多方间引入一个第三方――Event Channel,一定程度上解除Client和Server之间的耦合关系,在通信的过程中,任意一方只需与Event Channel打交道,而无需确切知道对方的存在,从而使得二者由一对一的关系变
2006-05-12 17:12:00
4548
1
原创 CORBA Programming with TAO - 7.IIOP(体验IIOP--一个Java作客户端的例子)
CORBA Programming with TAO - 7.IIOP(体验IIOP--一个Java作客户端的例子)摘要:CORBA2.0引入的IIOP(Internet Inter-ORB Protocol)是GIOP(General Inter-ORB Protocol)针对TCP/IP协议的一个实现,IIOP使得不同ORB间可以相互访问,同时也使得基于不同ORB的复杂分布式应用成为可
2006-05-12 17:11:00
3839
原创 CORBA Programming with TAO - 6.Naming Service(使用命名服务)
CORBA Programming with TAO - 6.Naming Service(使用命名服务)摘要:命名服务(Naming Service)是CORBA定义的诸多服务中比较常用的一个, Naming Service提供的助记符解析服务使得应用程序可以借助助记符,而不是一大串IOR来访问到相应的Servant。一、简介直接将IOR串在程序间传递的做法往往比较不方便,特别是
2006-05-12 17:10:00
8993
2
原创 CORBA Programming with TAO - 5.Hello World(简单实例)
CORBA Programming with TAO - 5.Hello World(简单实例)摘要:前面对CORBA编程的基础知识进行了简单介绍,本篇中,我们将实例讲解如何利用TAO中进行CORBA编程。一、编写IDL1、建一个空的Solution,然后在该Solution目录下新建一个名为idl的Win32 Static Library工程(对于一般的TAO工程,无需单独为id
2006-05-12 17:08:00
5874
1
原创 CORBA Programming with TAO - 4.Basic Functions(常用基本方法解析)
CORBA Programming with TAO - 4.Basic Functions(常用基本方法解析)摘要:简要介绍CORBA规范定义的几个常用基本方法的功能及应用中需要注意的问题。正文:idl编译器会为每个在idl中声明的interface生成一个对应的代理基类:class InterfaceName;以及两个对象引用类型:InterfaceName_ptr
2006-05-12 17:05:00
4387
1
原创 CORBA Programming with TAO - 3.IDL Data Type(数据类型与Mapping)
CORBA Programming with TAO - 3.IDL Data Type(数据类型与Mapping)摘要:简要介绍TAO支持的IDL数据类型及其C++ Mapping关系。一、简单基本数据类型(Simple Basic Types)TAO支持以下简单基本数据类型(%TAO_ROOT%/tao/Basic_Types.h):
2006-05-12 17:02:00
6578
原创 CORBA Programming with TAO - 2.Compile Source Code(编译ACE/TAO/CIAO)
CORBA Programming with TAO - 2.Compile Source Code(编译ACE/TAO/CIAO)摘要:简要介绍如何在Windows平台上编译ACE/TAO/CIAO,及编译过程中需注意的问题。正文:随着ACE/TAO/CIAO研究者研究的不断深入,整个平台变得越来越庞大,涉及的工程及目录数目也越来越多,下面简要介绍一下如何在Windows平台上编
2006-05-12 16:56:00
8079
1
原创 CORBA Programming with TAO - 1.Start(基本概念)
CORBA Programming with TAO - 1.Start(基本概念)摘要:简要介绍CORBA的基本原理,并解释POA、stub、skeleton、servant等重要概念。一、CORBA及TAO简介CORBA是一个为简化跨平台应用而提出的规范,它独立于网络协议、编程语言和软硬件平台,支持异构的分布式计算环境和不同编程语言间的对象重用。CORBA可以作为不同平台应用间
2006-05-12 10:29:00
6234
1
原创 JNI中文处理问题小结
由于工作关系,需要利用JNI在C++与Java程序之间进行方法调用和数据传递,但以前总是在英文环境下工作,对中文(其他语言编码同理)问题反倒没有太关注,最近抽了点时间研究了一下,将自己的体会整理如下,供大家讨论或参考。在进一步讨论之前,有几点基础知识需要说明:1、在Java内部,所有的字符串编码采用的是Unicode即UCS-2。Unicode是用两个字节表示每个字符的字符编码方案。Unicode
2006-02-13 12:34:00
4570
1
原创 大卫的Design Patterns学习笔记24:后记
虽然学习、研究设计模式已经很久,但一直未敢动笔写下任何关于设计模式的文章,一则是因为DP属于软件设计技术,较其它实用编程技术,更为抽象,需有认真思考、充分实践才能领会;其二,虽然GoF的DP一书已对所列举的23种Pattern作了详细的分析、介绍,但要逐一将体会写下来,仍然是一件十分艰巨的任务。因此,从写第一篇概述到现在历时3月有余(已记不清其间有多少次为了举一个贴切的例子苦恼到深夜;原本计划用1
2005-08-04 08:40:00
2478
2
原创 大卫的Design Patterns学习笔记23:Vistor
大卫的Design Patterns学习笔记23:Vistor 一、概述前面已经讨论过的Adapter模式告诉我们如何应对接口不一致对我们的设计造成的影响,但是,这并不能在如下的Context下发挥多大的作用:一个类系中的多个类要求支持相同的操作,但是这些类提供的接口并不一致。看到这里,你可能会说,我干嘛要用什么Adapter?我才没那么笨呢,我直接修改整个类系的接口方法,
2005-08-04 08:39:00
2416
原创 大卫的Design Patterns学习笔记22:Template Method
一、概述Template Method(模板方法)模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。这里所说的Template跟Generic Programming(范型编程)中讨论的C++的template不是一回事(虽然有一定的相似性),C++的template是一种逻辑复用的方式,它可以不
2005-08-04 08:37:00
1627
原创 大卫的Design Patterns学习笔记21:Strategy
一、概述Strategy(策略)模式又称Policy模式,用于定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。这里的算法并非狭义的数据结构或算法理论中所讨论的KMP、shell sort等算法,而是指应用程序设计中不同的处理逻辑,前面所说的狭义的算法只是其中的一部分。Strategy模式使得算法与算法的使用者相分离,减少了二者间的耦合度,使得算法可独立于使用它的客户而变化;同时,由于
2005-08-03 08:52:00
1855
原创 大卫的Design Patterns学习笔记20:State
一、概述State(状态)模式用于把一个对象的内部状态从对象中分离出来,形成单独的状态对象,所有与该状态相关的行为都放入该状态对象中。一个对象可能处在这样或者那样的状态,并且在不同的状态下会表现出不同的行为,这是很平常的事情,例如,我们制作一个定点报时程序,当时间是0:00-12:00时,问候语是:“Good Morning! 现在是...AM.”;当时间是12:00-18:00时,问候语是:“G
2005-08-03 08:49:00
1671
原创 大卫的Design Patterns学习笔记19:Observer
一、概述Observer(观察者)模式又被称作发布-订阅(Publish-Subscribe)模式,用于定义对象间的一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。二、结构Observer模式的结构如下图所示: 图1、Observer模式类图示意上面的类图中包括如下组成部分:Subject(抽象主题)角色:主题角色把所有对观察考对象的引用保存在一个聚集里,每
2005-08-03 08:46:00
1844
原创 大卫的Design Patterns学习笔记18:Memento
一、概述Memento(备忘录)模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。二、结构Memento模式的类图结构如下图所示: 图1、Memento模式类图示意Memento模式所涉及的角色有三个,备忘录角色、发起人角色和负责人角色。其中:Memento(备忘录):负责存储原发器对象的内部状态,并可防止原发器以外的其他对象
2005-08-03 08:44:00
1752
原创 大卫的Design Patterns学习笔记17:Mediator
一、概述Mediator(中介者)模式的名称已经基本能够反映该模式的意图:用一个中介对象来封装一系列的对象之间的交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。Mediator很象十字路口的红绿灯,每个车辆只需和红绿灯交互,而不是在各车辆之间进行交互。Mediator与Proxy的比较Proxy模式是简化的Mediator模式?个人认为从功能上讲,Me
2005-07-28 09:36:00
2057
原创 大卫的Design Patterns学习笔记16:Iterator
一、概述Iterator(迭代器)模式又称Cursor(游标)模式,用于提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。或者这样说可能更容易理解:Iterator模式是运用于聚合对象的一种模式,通过运用该模式,使得我们可以在不知道对象内部表示的情况下,按照一定顺序(由iterator提供的方法)访问聚合对象中的各个元素。由于Iterator模式的以上特性:与聚合对象耦合
2005-07-28 09:17:00
1993
原创 大卫的Design Patterns学习笔记15:Interpreter
一、概述Interpreter(解释器)模式描述了如何为简单的语言定义一个文法,如何在该语言中表示一个句子,以及如何解释这些句子。在这里使用语言这个词似乎将Interpreter模式的应用范围限制到了一个过于狭小的范围,毕竟,我们不是自然语言或者编程语言设计者,需要注意的是,这里所讨论的语言并非指复杂的自然语言或者编程语言,而是一种语义标记,Interpreter模式负责实现这种标记的定义以及将其
2005-07-28 09:05:00
2026
原创 大卫的Design Patterns学习笔记14:Command
一、概述Command(命令)模式可用于将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,即允许用户指定对何种对象执行何种操作;或者,对请求排队或记录请求日志,以及支持可撤消的操作。二、结构Command模式的结构如下图所示: 图1、Command模式类图示意上图中包括如下角色:客户(Client)角色:创建了一个具体命令(ConcreteCommand)对象并确定其接收者。命令(
2005-07-28 09:02:00
2254
原创 大卫的Design Patterns学习笔记13:Chain of Responsibility
一、概述Chain of Responsibility(职责链,以下简称CoR)模式通过将多个对象串接成一条链(Chain),并沿着这条链传递上层应用传来的请求,直到有一个对象处理它为止,使得多个对象都有机会处理上层应用传来的请求,从而避免请求的发送者和接收者之间的耦合关系。对于Chain中的各个对象,可以采用类似单向链表或双向链表的结构,保存各自后继或者前接元素的引用/指针来实现链接(紧密链接)
2005-07-28 08:58:00
2262
原创 大卫的Design Patterns学习笔记12:Proxy
一、概述大家都用过代理服务器,代理服务器是从出发点到目的地之间的中间层。而Proxy模式中的Proxy功能上与此类似,是对象的访问者与对象之间的中间层。Proxy(代理)模式可用于解决在直接访问对象不方便或不符合要求时,为这个对象提供一种代理,以控制对该对象的访问。二、结构Proxy模式的类图结构如下图所示: 图1:Proxy模式类图示意在上面的类图中,Proxy类是Subject类的子类,但个人
2005-07-27 09:08:00
2049
1
原创 大卫的Design Patterns学习笔记11:Decorator
一、概述继承是对类进行扩展,以提供更多特性的一种基本方法,但是有时候,简单的继承可能不能满足我们的需求。如我们的系统需要提供多种类型的产品:类型A、类型B、...同时,这些产品需要支持多种特性:特性a、特性b、...以下是两种可能的实现:1、继承,分别实现类型Aa、类型Ab、类型Ba、类型Bb、...这种实现方式在类型的数目和所支持特性的数目众多时会造成“类爆炸”,即会引入太多的类型,并且,这种实
2005-07-27 09:05:00
2281
原创 大卫的Design Patterns学习笔记10:Flyweight
一、概述当类的部分属性在整个系统中的多个对象间重复出现时,一个通常的作法是将重复出现的属性从类定义中分离出来,并在多个对象间通过共享来节约系统开销,这种情况在界面相关的应用中尤其常见。如用于浏览目录内容的树,每个节点前面有一个Icon用于表示该节点的类型,如果将该Icon保存在每个节点的数据结构中,无疑是一种巨大的浪费,这时候通过共享(每个节点只需要保存一个所使用Icon的标识即可,在C++中,可
2005-07-27 08:59:00
1999
原创 大卫的Design Patterns学习笔记09:Facade
一、概述Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。实际应用中,我们在对付一些老旧的code(尤其是将C的代码转成C++代码)或者即便不是老旧code,但涉及多个子系统时,除了重写全部代码(对于老旧code而言),我们还可能采用这样一种策略:重新进行类的设计,将原来分散在源码中的类/结构及方法重新组合,形成新的、统一的接
2005-07-27 08:55:00
1920
原创 大卫的Design Patterns学习笔记08:Composite
一、概述我们往往总是希望用一致的方式访问不同类型的对象,不论这个对象是同一类系中类型A的对象,还是类型B的对象,OO的多态性为我们提供了这种支持。Composite模式将这种观点更进一步,当一个复杂对象由多个同一类系中的对象组成的时候,我们仍然希望用与访问单个对象一致的方式来访问该复杂对象(这其实仍是多态性在发挥作用,但在这个多态方法的内部处理使得我们可以做到“用一致的方法访问”这一点,见示例)。
2005-07-26 08:30:00
2307
1
原创 大卫的Design Patterns学习笔记07:Bridge
一、概述Bridge(桥接)模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。二、结构Bridge模式的结构如下: 图1:Bridge模式类图示意由于Bridge实现抽象-实现的特性,它与Builder模式存在一定的相似性,但二者的区别也是十分显著的,后者更专注于复杂对象的创建,可以认为是Bridge模式的在对象创建方面的一个应用。Bridge模式与Object Adapter模式及后面即
2005-07-21 08:45:00
2210
1
原创 大卫的Design Patterns学习笔记06:Adapter
一、概述Adapter(适配器)模式又称Wrapper模式,主要用于将一个类的接口转换成客户希望的另外一个接口,解决两个已有接口之间不匹配的问题。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。因此,Adapter模式经常被描述成第三方函数库或旧的程序库与现有系统接口/需求不一致时的救星,也正是由于Adapter模式的这种特性,有人也将Adapter模式比喻成变压器,变
2005-07-21 08:42:00
2361
1
原创 大卫的Design Patterns学习笔记05:Singleton
一、概述在很多情况下,我们的系统只允许某个类有一个或指定个数的实例,如一般的应用系统往往有且仅有一个log文件操作类实例,或者,整个系统仅有一个等待事务队列等(注意:Singleton不是用来解决整个应用程序仅有一个实例这样的问题的),在这些情况下可以考虑使用Singleton模式。Singleton(单件)模式用于保证一个类仅有一个实例,并提供一个访问该实例的全局访问点。(GoF: Ensure
2005-07-20 08:53:00
1743
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人