摘要: 定义定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法(Factory Method)使一个类的实例化延迟到其子类。也叫虚构造器(Virtual Constructor)代码如下://定义产品接口,从而可以扩展出N多系列产品,以手机为例class ISamsung{public: ISamsung(){} virtual ~ ISamsung(){} virtual void Call() = 0 ;}//定义工厂接口,用来生产不同系列的手机class IFactory{ public: IFactory(){} virtual ~ IFactor... 阅读全文
posted @ 2012-01-13 23:53 rookie_zw 阅读(120) 评论(0) 推荐(0)
摘要: 将一个类的接口转换成客户需要的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。也称作包装器(Wrappter)。 实施就是实现了接口的一个转换,起到了一个中间的桥梁的作用。 举个简单的例子,显卡都是VGA接口,如果你换了显卡,结构是hdmi 或者 其他类型的接口,怎么办?很好办,弄个转接头就搞定了,适配器在这里就扮演了转接头的作用。 1 //VGA视频接口 2 class CVgaInterFace 3 { 4 public: 5 CVgaInterFace(){} 6 virtual ~ CVgaInterFace(){} 7 ... 阅读全文
posted @ 2012-01-13 21:19 rookie_zw 阅读(140) 评论(0) 推荐(0)
摘要: 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 (copy)来看下面个例子: 1 class CSamsung 2 3 { 4 5 public: 6 7 CSamsung(){} 8 9 virtual ~CSamsung(){} 10 11 virtual void MakeCall... 阅读全文
posted @ 2012-01-13 13:22 rookie_zw 阅读(120) 评论(0) 推荐(0)
摘要: pthread_cond_wai(条件等待)通常情况下,pthread_cond_wait() 和mutex一起配合使用。用生产者与消费者的关系来看。例如,有一个生产者,2个消费者。 1 //定义全局的 互斥对象和条件等待对象 2 3 pthread_mutex_t mtx; 4 5 pthread_cond_t cond; 6 7 //消费者线程函数: 8 9 void threadproc(void * parm)10 11 {12 13 while(1)14 15 {16 17 pthread_mutex_lock(&mtx);//锁定mtx ,以... 阅读全文
posted @ 2012-01-13 13:08 rookie_zw 阅读(337) 评论(0) 推荐(0)
摘要: 2.char* strsub (char *instr, unsigned start, unsigned end) 3.{ 4. unsigned n = end - start; 5. char * outstr = (char *)malloc(n+1); 6. //bzero(outstr,n+1); 7. strncpy (outstr, instr + start, n); 8. outstr[n] = 0; 9. return outstr; 10.} 11. 12.int setnonblocking(int sockfd... 阅读全文
posted @ 2012-01-13 13:04 rookie_zw 阅读(145) 评论(0) 推荐(0)
摘要: 看如下代码: 1 class BASEs 2 { 3 public: 4 BASE(int index):_index(index) 5 { 6 } 7 ~BASE(void) 8 { 9 }10 private: 11 int _index; 12 }; 这是一个没有默认构造函数的类。class CHILD:public BASE { public: CHILD( ):BASE(0)//这里是关键。 { } ~CHILD(void) {... 阅读全文
posted @ 2012-01-13 12:58 rookie_zw 阅读(145) 评论(0) 推荐(0)
摘要: 1.以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符,如在代码中写 "abc",那么编译器帮你存储的是"abc\0"2."abc"是常量吗?答案是有时是,有时不是。 不是常量的情况:"abc"作为字符数组初始值的时候就不是,如 char str[] = "abc"; 因为定义的是一个字符数组,所以就相当于定义了一些空间来存放"abc",而又因为 字符数组就是把字符一个一个地存放的,所以编译器把这个语句解析为 char str[3] = {'a' 阅读全文
posted @ 2012-01-13 12:48 rookie_zw 阅读(139) 评论(0) 推荐(0)