享元模式及C++实现
摘要:享元模式(flyweight)flyweight是轻量级的意思,中文这边翻译成享元,更容易让人理解一些。享元模式是为了应对大量细粒度对象重复的问题。程序中存在大量细粒度的对象,每次要使用时都必须创建一个新的对象,既影响了运行效率又增加了内存消耗。于是有了享元模式,享元模式提取出这些细粒度对象中间公共的状态(属性,我的理解),只生成一个实例对象,所有用到这些公共属性对象的地方,都指向这一个实例。根据我的理解,很多类有一部分的属性是可以共享的,而不可共享的部分需要提取出来,通过参数传递来使用。典型的享元模式的例子为文书处理器中以图形结构来表示字符。一个做法是,每个字形有其字型外观,字模metric
阅读全文
posted @
2013-07-16 21:02
曾经的你|
阅读(4377)
推荐(1) 编辑
组合模式及C++实现
摘要:组合模式组合模式,是为了解决整体和部分的一致对待的问题而产生的,要求这个整体与部分有一致的操作或行为。部分和整体都继承与一个公共的抽象类,这样,外部使用它们时是一致的,不用管是整体还是部分,使用一个方法即可遍历整体中的所有的部分。就像一个树形结构一样。如下面的类图,client的只需要使用Component即可,无须关心到底是Leaf还是Composite。这里有两种情况,add函数对于Leaf来说是没有必要的,所以一种办法就是在Leaf的add实现中什么都不写。还一种办法就是将add方法挪到Composite中,让外部使用Composite和Component。但这样的缺点就是暴露了Comp
阅读全文
posted @
2013-07-15 17:08
曾经的你|
阅读(3567)
推荐(0) 编辑
QCopChannel的用法
摘要:QT提供了很多的进程间通讯的方法,例如共享内存,QProcess等等。但有一种方法是嵌入式端所独有的,那就是Qt Communications Protocol(QCOP)QT通讯协议,这种方法只能用于QT Embeded。网上关于这种用法的资料比较少,研究了半天才搞明白是怎么回事。QCOP将进程间的通讯简化,使之就像使用QT中的信号与槽一样方便。用法:1.首先是编写接收消息的程序 channel = new QCopChannel(QString("/System/recevie"),this); connect(channel, SIGNAL(received(cons
阅读全文
posted @
2013-07-11 15:38
曾经的你|
阅读(1952)
推荐(0) 编辑