全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C语言 设计模式之访问者模式

C语言访问者模式

概要:

访问者模式,听上去复杂一些。但是,这种模式用简单的一句话说,就是不同的人对不同的事物有不同的感觉。比如说吧,豆腐可以做成麻辣豆腐,也可以做成臭豆腐。可是,不同的地方的人未必都喜欢这两种豆腐。四川的朋友可能更喜欢辣豆腐,江浙的人就可能对臭豆腐更喜欢一些。那么,这种情况应该怎么用设计模式表达呢?

typedef struct _Tofu 
{ 
  int type; 
  void (*eat) (struct _Visitor* pVisitor, struct _Tofu* pTofu); 
}Tofu; 
 
typedef struct _Visitor 
{ 
  int region; 
  void (*process)(struct _Tofu* pTofu, struct _Visitor* pVisitor); 
}Visitor; 

    就是这样一个豆腐,eat的时候就要做不同的判断了。

void eat(struct _Visitor* pVisitor, struct _Tofu* pTofu) 
{ 
  assert(NULL != pVisitor && NULL != pTofu); 
 
  pVisitor->process(pTofu, pVisitor); 
} 

    既然eat的操作最后还是靠不同的visitor来处理了,那么下面就该定义process函数了。

void process(struct _Tofu* pTofu, struct _Visitor* pVisitor) 
{ 
  assert(NULL != pTofu && NULL != pVisitor); 
 
  if(pTofu->type == SPICY_FOOD && pVisitor->region == WEST || 
    pTofu->type == STRONG_SMELL_FOOD && pVisitor->region == EAST) 
  { 
    printf("I like this food!\n"); 
    return; 
  } 
 
  printf("I hate this food!\n");   
} 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# C语言访问者模式  # C语言访问者模式实例代码  # C语言访问者模式详解  # C语言设计模式之命令模式介绍  # 的人  # 一句  # 希望能  # 要做  # 这样一个  # 这种情况  # 就可  # 人对  # 谢谢大家  # 这两种  # 说吧  # 就该  # 能对  # 江浙  # struct  # void  # typedef  # type  # int  # _Tofu 


相关文章: 深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  非常酷的网站设计制作软件,酷培ai教育官方网站?  如何通过多用户协作模板快速搭建高效企业网站?  php json中文编码为null的解决办法  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  如何通过虚拟主机快速完成网站搭建?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  北京制作网站的公司,北京铁路集团官方网站?  建站之星备案流程有哪些注意事项?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  如何快速搭建高效可靠的建站解决方案?  用v-html解决Vue.js渲染中html标签不被解析的问题  学校为何禁止电信移动建设网站?  建站之星CMS五站合一模板配置与SEO优化指南  个人摄影网站制作流程,摄影爱好者都去什么网站?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  常州自助建站工具推荐:低成本搭建与模板选择技巧  平台云上自主建站:模板化设计与智能工具打造高效网站  北京企业网站设计制作公司,北京铁路集团官方网站?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  建站之星下载版如何获取与安装?  家庭服务器如何搭建个人网站?  内部网站制作流程,如何建立公司内部网站?  浅析上传头像示例及其注意事项  如何高效完成自助建站业务培训?  *服务器网站为何频现安全漏洞?  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  如何零基础开发自助建站系统?完整教程解析  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  网站app免费制作软件,能免费看各大网站视频的手机app?  大连网站制作公司哪家好一点,大连买房网站哪个好?  建站主机数据库如何配置才能提升网站性能?  高防服务器租用首荐平台,企业级优惠套餐快速部署  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  如何通过虚拟主机空间快速建站?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  免费视频制作网站,更新又快又好的免费电影网站?  教程网站设计制作软件,怎么创建自己的一个网站?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  Python文件管理规范_工程实践说明【指导】  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  html制作网站的步骤有哪些,iapp如何添加网页?  如何在万网自助建站平台快速创建网站?  制作表格网站有哪些,线上表格怎么弄?  建站之星如何优化SEO以实现高效排名?  香港网站服务器数量如何影响SEO优化效果? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。