栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ 访问者模式及应用场景

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ 访问者模式及应用场景

C++ 访问者模式
  • C++ 访问者模式
    • 访问者模式有社么作用?
    • 访问者模式代码举例
    • 应用场景

C++ 访问者模式 访问者模式有社么作用?

我至今没遇到过使用访问者模式的工程级C++代码,但是从日常生活上却是一种常见的考虑问题的思路:
举个例子对比一下
参观别人家的公司的两种方式:
1 访问者模式:你(参观者)想要参观一家公司(被参观的对象),需要门禁卡才能进入,需要注册一张临时卡(C++中,就相当于注册到公司对象,注册进去,再把公司对象的this指针传入自己的功能函数中)),然后开始参观(调用公司类开放的接口,如GetValue之类的)。
2 组合模式:买下来这家公司成为老板(持有公司对象),自然可以参观各个部门,调用任何功能函数,那就没啥可讲的了,全是你的。

访问者模式代码举例
被访问的类
class Company
{
	regist(vister *person)
	{
		person->lookcompany(this);
	}
	getValue()
	{
		cout<<"office security message"< 
访问者
class vister
{
	void lookCompany(company* office)
	{
	    cout<<"关掉监控"//访问者自己的功能
		office->getvalue();//调用公司类内部的功能
	}
}
应用场景

我能想到的就是,你想临时给公司类加一个功能,这个功能主要是由访问者带来的,同时也会使用到公司类自有的功能,就用这个模式;那读者会问了,装饰模式不也一样嘛?其实不一样,装饰模式装饰类和公司类仍旧继承于同一个基类,装饰类仍旧属于公司,且与公司类一样的接口,只是会多了一些功能,那下一节就讨论下装饰模式。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1026765.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号