Loki库里的Cyclic Visitor

原创 2007年09月19日 17:17:00

Loki给你一个选择,你可以使用经典GoF描述的Visitor模式,但是,使用这个模式获得效率的同时使你的修改更为麻烦,其实理想的办法是是使用Acyclic模式,当稳定后要优化的时候再改为Cyclic模式。

我这个给一个使用Cyclic模式的完整代码(头文件和名称空间要自己处理)。

class VA;
class VB;
class VC;
typedef    CyclicVisitor
<void,LOKI_TYPELIST_3(VA,VB,VC)>    MyVisitor;

class VBase
...{
public:
    
virtual    void    Accept(MyVisitor& v)    = 0;
public:
    
virtual    void    say()...{cout<<"I am base class"<<endl;}
}
;

class VA    :public    VBase
...{
public:
    LOKI_DEFINE_CYCLIC_VISITABLE(MyVisitor)
public:
    
void    say()...{cout<<"I am VA"<<endl;}
}
;

class VB    :public    VBase
...{
public:
    LOKI_DEFINE_CYCLIC_VISITABLE(MyVisitor)
public:
    
void    say()...{cout<<"I am VB"<<endl;}
}
;

class VC    :public    VBase
...{
public:
    LOKI_DEFINE_CYCLIC_VISITABLE(MyVisitor)
public:
    
//void    say(){cout<<"I am VC"<<endl;}
}
;

class ConcretVisitor    :public    MyVisitor
...{
public:
    
void    Visit(VA& vb)
    
...{
        vb.say();
    }

    
void    Visit(VB& vb)
    
...{
        vb.say();
    }

    
void    Visit(VC& vb)
    
...{
        vb.say();
    }

}
;

int _tmain(int argc, _TCHAR* argv[])
...{
    ConcretVisitor    cv;
    VA    va;
    VB    vb;
    VC    vc;
    va.Accept(cv);
    vb.Accept(cv);
    vc.Accept(cv);
    
return 0;
}

 

loki库之内存池SmallObj

[原创]loki库之内存池SmallObj http://www.cnblogs.com/UnGeek/p/4537114.html loki库之内存池SmallObj ...
  • zdy0_2004
  • zdy0_2004
  • 2015年05月29日 22:50
  • 1066

设计模式总结之Visitor Pattern(访问者模式)

表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。...
  • cooldragon
  • cooldragon
  • 2016年08月12日 12:10
  • 3765

小技巧绕过Sina Visitor System(新浪访客系统)

0x00 前言 一直以来,爬虫与反爬虫技术都时刻进行着博弈,而新浪微博作为一个数据大户更是在反爬虫上不遗余力。常规手段如验证码、封IP等等相信很多人都见识过…… 当然确实有需要的话可以通过...
  • u013474557
  • u013474557
  • 2015年01月03日 13:27
  • 2854

VA_X_1738增强Microsoft开发环境下的编辑能力识别界面库里的宏

  • 2013年03月21日 11:57
  • 4.98MB
  • 下载

库里韩德武

  • 2014年08月20日 19:34
  • 36KB
  • 下载

Hook编程。如何安装钩子过程,如何编写全局钩子,动态连接库里的全局变量数据共享问题分析。ADO数据库编程。在VB中利用ADO控件和ADO对象访问数据库,在VC中利用ADO技术访问数据库。

  • 2009年05月27日 11:06
  • 14KB
  • 下载

使用zlib库里的compress函数与uncompress函数

文件转自:http://blogold.chinaunix.net/u3/118848/showart_2363489.html zlib 是通用的压缩库,提供了一套 in-memory 压缩和解压函...
  • yuucyf
  • yuucyf
  • 2011年04月06日 10:09
  • 2353

调用相机拍照或者从图库里选择图片裁剪后设置到界面

拍照或者从相册中挑选图片设置头像是很常见的功能。同样是网上搜索了资料,知道了可以调用系统的功能实现,然后就试着开始写了。先是布局文件,就是一个ImageView和一个TextView。 ...
  • mouse12138
  • mouse12138
  • 2016年05月11日 15:44
  • 1736

[C/C++标准库]_[初级]_[标准库里提供的排序算法]

sort() stable_sort() partial_sort() reverse() nth_element() qsort() 场景: 1. C/C++的algorithm里提供的算法一...
  • infoworld
  • infoworld
  • 2014年01月27日 15:53
  • 2115

在Eclipse中导入SVN库里的Maven项目

新建SVN项目 a) File --> New --> Other --> SVN     b)  c)  d)  4. 转换项目类型 a)  b...
  • tszxlzc
  • tszxlzc
  • 2016年02月22日 16:08
  • 1810
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Loki库里的Cyclic Visitor
举报原因:
原因补充:

(最多只允许输入30个字)