上一页 1 ··· 7 8 9 10 11 12 13 下一页
摘要: 2012个人总结与展望 逝者如斯夫,不舍昼夜。过去论天过现在论周过,我才真正的感觉到时间不是静止的,而是平静的表面下在飞速的流淌着势不可挡,这种大自然最古老的手段着实很厉害!时间这样过了但是必须得回首这一年,自个做了哪些事,完成了那些既定目标,取得了什么样的成长,能不能让自己心安理得。一 去年目标与计划 在去年的总结中,我深刻的剖析了自己:缺乏思想,思维僵化,消极迷茫,缺乏勇气。在这样剖析了之后,但我没有提出改善自己的方法,这样的情况依然如故,没有说也没有做,陋习依旧,有这样的意识但没有行动,于是在网络上我常给自己取名bastard——“混帐”。 工作方面我要求自己要全面掌握... 阅读全文
posted @ 2012-01-14 11:18 __Shadow 阅读(969) 评论(2) 推荐(0) 编辑
摘要: Composite模式一 意图 将对象组合成树形结构以表示“部分——整体”的层次结构。Composite使得用户对单个对象操作和组合对象的操作使用具有一致性。二 动机 绘图编辑器和图形捕捉系统图形应用程序中,总是存在简单的图形到简单的组件再到复杂的组件,但他们在本质上都是图形(各种基本的图形组合或者递归组合)。这可以分成两个部分:基本图元和组件图形。对于基本的图元可以单独定义类;对于组件图形可以使用图元容器(Container)。 结果就是:在使用时,对于同样的都是图形的图元和组件必须加以区分对待(图元对象Or容器对象)。对于庞大的图形系统,这无疑是非常复杂的! 解决方法:Compos... 阅读全文
posted @ 2012-01-14 11:13 __Shadow 阅读(1784) 评论(0) 推荐(0) 编辑
摘要: Bridge模式一 意图 将抽象部分与它的实现部分分离,使它们都可以独立的变化。 (类设计的开闭原则:对扩展开放,对修改关闭)二 动机 看看文章中的例子:可移植的window的抽象部分的实现,及其扩展的方式 1 如需增加新的类型window就必须要重新增加新的window类, 且仍然要区分对应平台的window类型,如果要是新增加一个平台,那整个结构都需要重新添加新的window类型。 2 继承机制使得客户代码与平台相关。XWindow对象的实现方式仅支持在XWindow平台上运行,包括其所扩展的对象, 都只能在XWindow平台上运行,如果要在PMWindow上... 阅读全文
posted @ 2012-01-12 14:11 __Shadow 阅读(803) 评论(1) 推荐(0) 编辑
摘要: C++ Event Model一 事件模型 对发生的事件作出的响应——事件模型。1 事件: 在面向对象中,就是对象的属性或者状态发生了变化,操作或者接收到了某些动作时,向外发出了这种变化或者动作对应的通知。 2 事件模型包括的元素: 3 事件模型过程: 二 代码实现1 EventManager/*----------------------------------------------------------------*//* class Object 响应事件函数的类必须是从Object派生下来 *//*-------... 阅读全文
posted @ 2012-01-10 18:49 __Shadow 阅读(22438) 评论(2) 推荐(5) 编辑
摘要: Adapter模式一 意图 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类可以在一起工作。二 动机 为复用而设计的通用的类,总是存在一些特殊的情况,使其不能够使用或者完成相应的扩展性的功能。看文中所给的例子:绘图编辑器中新增加文本图形编辑 TextView是呈现文本的,并不支持图形编辑的方式,新增加TextShape,是无法直接使用TextView中的方法,但同时还要存在Shape的操作,或许还要新增加特性或者操作,这些都要求必须要新增加一个类来完成这些功能。为了能够使用到TextView中已经存在对于文本... 阅读全文
posted @ 2012-01-10 17:44 __Shadow 阅读(1028) 评论(0) 推荐(0) 编辑
摘要: 一 string与char*比较1 string是一个类,char*是一个指向char型的指针。 string封装了char*,管理这个字符串封装了char*,是一个char*型的容器,使用灵活性强便于功能扩展。2 不用考虑内存释放和越界 String封装了char*,负责管理char*字符串,管理为char*所分配的内存。 每一次string的复制,取值都由string类负责维护,不用担心复制越界和取值越界等。3 string支持运算重载运算符: string a;string b;string c; 相加运算: c = a + b ;比较运算:a > b, a != b;4 能提供系 阅读全文
posted @ 2012-01-07 17:52 __Shadow 阅读(5628) 评论(0) 推荐(0) 编辑
摘要: 一 创建型模式1 创建型模式抽象了实例化的过程 将对象的创建,组合,表示独立于系统。一个类创建型模式使用继承来改变被实例化的对象,一个对象的创建型模式是将实例化委托给另一个对象,以避免硬编码(hard_coding)带来了的不可扩展和不能灵活应对变化,而来降低对象之间关系的重新更改或者组合或者复合所带来的复杂性。 创建型模式是解决对象实例化问题:由谁创建,怎么创建……二 创建型模式之间的比较1 AbstractFactory模式: 提供一个创建一系列相关或者相互依赖对象的接口,而无需制定他们具体的类。将一个完整的产品创建,委托给AbstractFactory,将完整产品拆分成许多相关或者... 阅读全文
posted @ 2012-01-07 16:44 __Shadow 阅读(671) 评论(0) 推荐(0) 编辑
摘要: Singleton一 意图 保证一个类仅有一个实例,并提供一个访问的全局访问点。二 结构 为什么需要仅有一个类的单例类呢?在很多种情况下,一个系统只需要此类的一个实例就够了:一个窗口管理器,一个消息通知器,一个数据存储器…… 有时候只能有一个:系统共用一个存储器,很多地方访问到存储器,必须要保证存储器唯一。三 代码实现class Singleton{protected: Singleton() { cout<<"Singleton constructor"<<endl; }public: static Singleton* getInstan... 阅读全文
posted @ 2012-01-04 20:03 __Shadow 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 问题是这样的:实现框架中类的RTTI需要保存类信息,为每一个要加入到运行时识别的类框架中的类,都创建一个存储类信息的classInfo类对象,内存使用的是静态数据区的类中静态数组。静态数组的大小是:U32 _className::s_classInfoBuf[(sizeof(ClassInfo) + sizeof(U32) - 1) / sizeof(U32)];new (s_classInfoBuf) ClassInfo();这个数组的大小 = (sizeof(ClassInfo) + sizeof(U32) - 1) / sizeof(U32) 着实让我看了很久没有弄明白。类的大小到底怎么 阅读全文
posted @ 2012-01-03 18:17 __Shadow 阅读(846) 评论(0) 推荐(0) 编辑
摘要: 实在惭愧,想要申请指向一个类的连续的批量的内存,尽然不知道怎么申请……1 基本类型的申请 //申请连续的10个指向int类型内存 int *pArray = new int(10);2 结构体和类class A{public: A(int a){}private: int x;};//申请10个连续的指向A对象的内存pA = new A[10]; //error 无默认构造函数pA = new A[10](0); //error 不支持class A{public: A(){} A(int a... 阅读全文
posted @ 2011-12-25 15:14 __Shadow 阅读(1826) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 下一页