12 2012 档案

摘要:为什么要用C来模拟面向对象的机制,在实际的工作中我们往往在感慨一些面向对象的经典设计模式由于C语言的限制无法使用,其实通过简单的模拟面向对象的行为,在C语言中也可以使用这些模式。1:类的构建类描述了所创建的对象共同的属性和方法。我们在一个源文件中通过把数据和操作进行适当的组织来完成类的模拟。/*类的数据*/typedef struct SQUARE_S SQUARE_T;struct SQUARE_S{ void (*draw)(void*); int sideLen;};/*类的方法*/static void draw(void* pObj){ SQUARE_T* pSqr... 阅读全文
posted @ 2012-12-22 21:49 平凡之路 阅读(9326) 评论(2) 推荐(0)
摘要:单一职责原则:通常的定义是只专注于做一件事和仅有一个引起它变化的原因。对于接口、实现、函数级别往往我们比较容易关注单一职责,大家谈的也比较多,但对于返回值、参数可能不会有太多的人关注。但往往就是这些不符合单一职责原则的设计可能导致一些很难发现的BUG。看看下面这段代码:pBuf = (byte*)realloc( pBuf, size);if( pbBuf != NULL ){ TODO...}可能很多人一眼看上去并没有什么问题,先让我们看看这个库函数的定义:函数简介 原型:extern void *realloc(void *mem_address, unsigned int ... 阅读全文
posted @ 2012-12-11 22:00 平凡之路 阅读(4742) 评论(2) 推荐(3)
摘要:一提到多线程一般大家的第一感觉就是可以提升程序性能,在实际的操作中往往遇到性能的问题,都尝试使用多线程来解决问题,但多线程程序并不是在任何情况下都能提升效率,在一些情况下恰恰相反,反而会降低程序的性能。这里给出两个简单的例子来说明下:程序1:View Code import threadingfrom time import ctimeclass MyThread(threading.Thread): def __init__(self, func, args, name): threading.Thread.__init__(self) self.name ... 阅读全文
posted @ 2012-12-08 11:57 平凡之路 阅读(17323) 评论(7) 推荐(2)
摘要:多态是面向对象语言的一个基本特性,多态意味着变量并不知道引用的对象是什么,根据引用对象的不同表现不同的行为方式。在处理多态对象时,只需要关注它的接口即可,python中并不需要显示的编写(像Java一样)接口,在使用对象的使用先假定有该接口,如果实际并不包含,在运行中报错。class handGun(): def __init__(self): pass def fire(self): print 'handGun fire'class carbine(): def __init__(self): pass def fire(self): print 'carbine 阅读全文
posted @ 2012-12-02 20:30 平凡之路 阅读(12545) 评论(0) 推荐(0)