所谓各人自扫门前雪的一个特点是,尽量不要保存自己不能够全权控制的对象的指针。特别是一些无关类,在相互信息隔离的情况下,绝对不要盲目的保有对方的指针。
观察者模式为类提供了有效的隔离手段。观察者模式的最大特点是将决定两者是否有侦听和被侦听关系的权力交给了第三方,一般来说是交给比自己掌握更多信息的父对象。
父对象是有责任比子对象掌握更完备的信息,并掌控子对象的行为的。(这里的父子关系指的是组合模式中的拥有和被拥有关系)
存档在 ‘计算机技术’ 分类
观察者模式的特点之一
2007年11月1日reinterpret_cast与static_cast的区别
2007年10月17日介绍
大多程序员在学C++前都学过C,并且习惯于C风格(类型)转换。当写C++(程序)时,有时候我们在使用static_cast<>和 reinterpret_cast<>时可能会有点模糊。在本文中,我将说明static_cast<>实际上做了什么,并且指出一些将会导致错误的情况。
泛型(Generic Types)
float f = 12.3;
float* pf = &f;
// static cast<>
// 成功编译, n = 12
int n = static_cast
// 错误,指向的类型是无关的(译注:即指针变量pf是float类型,现在要被转换为int类型) //int* pn = static_cast
//成功编译
void* pv = static_cast
» 阅读更多: reinterpret_cast与static_cast的区别
通过基类的指针调用派生类的函数
2007年10月15日刚刚明白了可以通过基类的指针,调用派生类的方法,这是近期,可以说一个月以来的最大的收获。
我想这也是C++不用于其他完全面向对象语言的区别之一——有了指针,可以做很多奇妙的事情。
在C++中,可以通过以下形式来获得一个类的方法地址偏移:
&类::方法
不能通过这个地址直接使用C的方式调用该方法,因为类的方法调用必须在类的环境之下,即需要隐含的this指针;
(对象的实例指针->*方法地址)(参数)
static_cast类型转换,为我们提供了一种方法,将派生类的方法地址转化为基类的方法地址。
我们知道,类的方法全局是唯一的,不管你将一个类的方法转换为那个父类的方法,实际的指针值是不变的。也就是说,static_cast转换一个方法的指针,作用仅是欺骗编译器,使得编译通过而已。
方法如下:
static_cast< 返回类型(基类::* » 阅读更多: 通过基类的指针调用派生类的函数
面向对象的核心思想
2007年9月21日面向对象的核心思想:各人自扫门前雪,莫管他人瓦上霜。
BSTR详解
2007年8月13日CSDN上有一篇相当不错的文章
http://blog.csdn.net/pkrobbie/archive/2007/01/18/1486367.aspx
C++的GC要标准化??噩梦还是福音?
2007年7月30日C++还能重新辉煌吗?C++复杂性的思考
2007年7月18日转载,作者不祥。原出处不祥。
C++的表面困境来自两方面,一是开发效率低,而是容易犯错,维护难度大。此二者俱是表象,本质就是一个——过度复杂。或有人说C++之关键缺陷是没有统一完整的类库支撑,Bjarne Stroustrup即强调此因素。然而这其实只不过是一个结果,而不是原因。正是因为语言太复杂,才无法在有效期内开发出高质量的大一统的类库。
C++的复杂,并非是其体积庞大之必然结果。复杂是对结构混乱无序程度的描述,规模大,结构不见得必然复杂。
C++的复杂,也并不是如很多人所认为,是若干种编程范式(paradigms)的并存而至。事实上,现代实用编程语言至少有2-3种范式才能登大雅之堂。以范式数量论,Python和Ruby等新型动态语言的范式甚至多于C++,然而它们却以简单和开发效率高著称。
C++复杂的根源在于三大约束:与C的完全兼容、静态类型检查、最高性能。在 » 阅读更多: C++还能重新辉煌吗?C++复杂性的思考
Flex builder 3 已经发布了测试版
2007年7月7日到adobe实验室,填写Email注册,即可下载到最新的Flex builder 3 beta版。
beta版只包含Flex builder 3的几项重要改进,安装程序、主程序框架以及帮助文档都是Flex builder 2的旧文件。
http://www.adobe.com/downloads/
在这里选择你要下载的最新试用版。
Flash CS3 英文版
2007年7月7日初次使用Flash CS3。
首先感觉到地是界面华丽了很多,处处给人感觉透明,圆润。
当然同时也感觉不稳定因素多了起来,手感不太爽,有可能是我地机器性能问题。
时间仓促,只是简单地使用了一下,感觉体验有些细节上的不足,比如以前右侧的面板最小化按钮没有了。左侧工具条的各个按钮选中之后仍然是突起状态,而不是以前的下陷状态,感觉相当的别扭,没有了被鼠标按下的手感。
继续深入体验中,感受将陆续发布。。。
IE中使用external对象来调用浏览器功能
2007年6月23日值得注意的一点是,注册到系统的activeX可以在IE中以object标签调用,ID就是com的标识。
可以通过这个标签来完成诸多普通JS完成不了的工作。
1、window.external…
» 阅读更多: IE中使用external对象来调用浏览器功能