- 博客(14)
- 收藏
- 关注
原创 装饰模式(结构型模式)
装饰模式是一种动态的给类中添加新行为的设计模式,装饰模式比生成子类更为灵活,可以给某个对象而不是整个类添加一些功能。值得注意的是装饰模式的装饰类也继承接口类,同时他也有接口类的指针指向他需要装饰的具体类。外表看着像is-a的关系,实际也是has-a的关系。实际应用中装饰类可以同时装饰几个具体类。可以看下边一个简单的代码,体现了装饰模式。
2014-04-27 11:11:01 408
原创 组成模式(Composite)(结构型模式)
将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。
2014-04-20 10:44:31 484
原创 适配器模式(结构型模式)
这种模式比较简单常见,比如stl里面的stack就是一个例子。设计模式上给的例子是公有继承接口,私有继承要适配的类,这里说一下当我们实战的时候不要私有继承,私有继承会增加类的耦合,我们应该把要适配的类作为接口类的私有成员。我这里举一个stack的例子,stl默认stack底层使用deque实现的,我这里用vector实现,为了简化我这里不用模板,直接存放int的数据。
2014-04-17 23:57:10 504
原创 策略模式(行为型模式)
策略模式就是将一系列算法进行封装,是算法可以独立于使用它的客户端记性变化。可能描述起来有点模糊,但是写出来一个简单的形式一看就会发现这种模式我们工作中自然而然的用到了很多。
2014-04-07 23:57:45 441
原创 观察者模式(行为型模式)
观察者模式是一种描述类之间的关系的模式,比较类似广播网络和邮件订阅。通常是一种一对多的关系,也可以转变成多对多的关系。当一个对象发生改变的时候所有依赖这个对象的其他对象都会得到通知。 我们举一个简单的例子来说明这种关系: Subject(被观察者的接口类)Observer(观察者的接口类)SubjectA(被观察者的实现类)ObserverA(观察者的实现类)
2014-04-03 17:41:06 389
原创 c++隐式类型转换
c++中隐式类型转换通常是编译器来完成的,当你的类型不匹配时,编译器会“智能”的帮你找到“正确”的类型并帮你转换。当然有些类型转换是我们所希望的,有些则是编译器“自以为是”的转换,不是我们所期望的。所以我们要了解什么时候转换会发生,怎么发生,才能更好的控制程序。 c++中隐式类型转换大致可以分为两种,一是用到的地方进行类型转换,二是变量被定义时的类型转换。 用到的地方进行
2013-06-29 11:04:51 705
原创 c++的强制类型转换
c++一共提供4种强制类型转换运算符: 1. static_cast expression 和c风格的强制类型转换一样,转换的时候不做类型检查,可以任意转换类型,用的时候注意。 2. const_cast expression 去掉const或volatile属性的转换,仅仅去掉属性变量类型不变。这个运算符只有这个用法,不能用于其他地方。
2013-06-26 09:34:53 650
原创 python 调用c++接口
目前需要将c++ 接口被python调用,在网上找发现有一个工具swig可以实现这个功能。关于swig大家可以去网上了解,这里就不做过多介绍,本文主要是给出一个完整的例子。因为我发现网上给出的例子大多不可用,或有些地方说的不明白 1.首先要在linux下安装swig工具,大家可以输入swig命令按提示安装(ubuntu) 2.写一个c++的接口类 //example.h #
2013-06-07 11:46:56 1213
原创 关于c++的构造和析构函数的调用
最近在设计几个c++类,有个问题不是很清晰啦所以写个小列子测试一下。测试代码如下: class Interface { public: Interface() { qDebug("Interface Constructor"); } ~Interface() { qDebug("Interface Destructor"); } }; class Base : pub
2012-08-25 21:56:14 331
转载 C语言修改注册表
C语言修改注册表<br />注册表可以说是系统的配置文件,大多数应用程序都要修改注册表.<br />1.用到比较多的几个API函数:<br />RegCreateKeyEx<br />RegSetValueEx<br />RegQueryValueEx<br />RegDeleteValue<br />RegCloseKey<br />2.注册表数据类型,常见的有两种:<br />REG_DWORD 32位数字<br />REG_SZ 以NULL结尾的字符串,它可以为Unicode或ANSI字符串,取
2010-09-17 09:58:00 1988 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人