当前位置: 首页 > news >正文

洛阳做网站找哪家全网seo是什么意思

洛阳做网站找哪家,全网seo是什么意思,ui设计培训费一般多少,自家电脑做网站服务器w7花生壳C 设计模式之访问者模式 简介 1、访问者模式 (Visitor)是一种行为型设计模式,它表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 使用该模式可以在不修改已有程序结构的前提…

C++ 设计模式之访问者模式

简介

1、访问者模式 (Visitor)是一种行为型设计模式,它表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 使用该模式可以在不修改已有程序结构的前提下,通过添加额外的访问者类实现新的操作。

2、访问者模式 (Visitor)应用场景包括但不限于:
2.1、对象结构比较稳定,但操作经常变化的程序。
2.2、需要对一个对象结构中的对象进行很多不同而且不相关的操作,而你想避免让这些操作“污染”这些对象的类。

3、访问者模式 (Visitor)的构成
3.1、访问者(Visitor):定义了一个访问操作中的元素的接口。这个接口使得访问者可以不修改类的结构就可以增加新的操作。

class DocumentVisitor
{
public:virtual ~DocumentVisitor() {}virtual void visitParagraph(class ParagraphElement* element) = 0;virtual void visitImage(class ImageElement* element) = 0;virtual void visitTable(class TableElement* element) = 0;
};

3.2、元素(Element):声明一个接受访问者对象的接口。这个接口通常包含一个或多个由访问者接口定义的方法。

class DocumentElement
{
public:virtual ~DocumentElement() {}virtual void accept(DocumentVisitor* visitor) = 0;
};

4、访问者模式 (Visitor)的优点
4.1、封装性: 可以在不改变元素类的情况下定义新的操作。
4.2、扩展性: 新的访问者可以很容易地添加新的操作。
4.3、分离关注点: 移动相关的操作集中到访问者中,而不是分散在元素类中。

5、访问者模式 (Visitor)的缺点
5.1、违反封装: 访问者可能需要访问元素的内部细节,这通常意味着元素必须暴露一些原本应该是私有的数据。
5.2、复杂度: 可以使系统变得更加复杂,特别是当系统有大量元素时。
5.3、对象结构变化困难: 如果经常改变对象结构的元素类,那么维护访问者模式将会非常麻烦。

简单示例

1、定义

// 抽象访问者
class DocumentVisitor
{
public:virtual ~DocumentVisitor() {}virtual void visitParagraph(class ParagraphElement* element) = 0;virtual void visitImage(class ImageElement* element) = 0;virtual void visitTable(class TableElement* element) = 0;
};// 元素基类
class DocumentElement
{
public:virtual ~DocumentElement() {}virtual void accept(DocumentVisitor* visitor) = 0;
};class ParagraphElement : public DocumentElement
{
public:void accept(DocumentVisitor* visitor);
};class ImageElement : public DocumentElement
{
public:void accept(DocumentVisitor* visitor);
};class TableElement : public DocumentElement
{
public:void accept(DocumentVisitor* visitor);
};// 渲染访问者
class RenderVisitor : public DocumentVisitor
{
public:void visitParagraph(class ParagraphElement* element);void visitImage(class ImageElement* element);void visitTable(class TableElement* element);
};// 检查访问者  
class CheckVisitor : public DocumentVisitor
{
public:void visitParagraph(class ParagraphElement* element);void visitImage(class ImageElement* element);void visitTable(class TableElement* element);
};

2、实现

void ParagraphElement::accept(DocumentVisitor* visitor)
{visitor->visitParagraph(this);
}void ImageElement::accept(DocumentVisitor* visitor)
{visitor->visitImage(this);
}void TableElement::accept(DocumentVisitor* visitor)
{visitor->visitTable(this);
}void RenderVisitor::visitParagraph(class ParagraphElement* element)
{std::cout << "Render Paragraph" << std::endl;
}void RenderVisitor::visitImage(class ImageElement* element)
{std::cout << "Render Image" << std::endl;
}void RenderVisitor::visitTable(class TableElement* element)
{std::cout << "Render Table" << std::endl;
}void CheckVisitor::visitParagraph(class ParagraphElement* element)
{std::cout << "Check Paragraph" << std::endl;
}void CheckVisitor::visitImage(class ImageElement* element)
{std::cout << "Check Image" << std::endl;
}void CheckVisitor::visitTable(class TableElement* element)
{std::cout << "Check Table" << std::endl;
}

3、调用

std::vector<DocumentElement*> vecDoc = {new ParagraphElement(),new ImageElement(),new TableElement()
};
RenderVisitor renderVisitor;
CheckVisitor checkVisitor;for (auto elem : vecDoc)
{elem->accept(&renderVisitor);elem->accept(&checkVisitor);
}for (auto el : vecDoc)
{delete el;
}

文章转载自:
http://corfam.rdfq.cn
http://superhelix.rdfq.cn
http://lipless.rdfq.cn
http://bichromate.rdfq.cn
http://veep.rdfq.cn
http://squantum.rdfq.cn
http://inequation.rdfq.cn
http://kakapo.rdfq.cn
http://breve.rdfq.cn
http://gemmer.rdfq.cn
http://maladroit.rdfq.cn
http://summarize.rdfq.cn
http://ent.rdfq.cn
http://nyctanthous.rdfq.cn
http://screed.rdfq.cn
http://labe.rdfq.cn
http://interpretable.rdfq.cn
http://groundnut.rdfq.cn
http://onrush.rdfq.cn
http://winterthur.rdfq.cn
http://artel.rdfq.cn
http://pollux.rdfq.cn
http://prudish.rdfq.cn
http://seltzogene.rdfq.cn
http://hast.rdfq.cn
http://taught.rdfq.cn
http://mendelevium.rdfq.cn
http://validation.rdfq.cn
http://portly.rdfq.cn
http://quiz.rdfq.cn
http://ferrite.rdfq.cn
http://ldrs.rdfq.cn
http://legislatively.rdfq.cn
http://castaneous.rdfq.cn
http://underling.rdfq.cn
http://dolorology.rdfq.cn
http://zygology.rdfq.cn
http://leafy.rdfq.cn
http://mongolism.rdfq.cn
http://antimorph.rdfq.cn
http://geognostical.rdfq.cn
http://surlily.rdfq.cn
http://southeastern.rdfq.cn
http://apostasy.rdfq.cn
http://delusive.rdfq.cn
http://chiccory.rdfq.cn
http://mukhtar.rdfq.cn
http://cacanny.rdfq.cn
http://pogonophoran.rdfq.cn
http://sober.rdfq.cn
http://scarificator.rdfq.cn
http://reattempt.rdfq.cn
http://adularia.rdfq.cn
http://pacifarin.rdfq.cn
http://dorsad.rdfq.cn
http://grabber.rdfq.cn
http://autarkic.rdfq.cn
http://zunian.rdfq.cn
http://washman.rdfq.cn
http://hypabyssal.rdfq.cn
http://corporally.rdfq.cn
http://anchorite.rdfq.cn
http://knapweed.rdfq.cn
http://deuterated.rdfq.cn
http://semitransparent.rdfq.cn
http://pinworm.rdfq.cn
http://puffingly.rdfq.cn
http://neuromotor.rdfq.cn
http://dashed.rdfq.cn
http://lanuginous.rdfq.cn
http://default.rdfq.cn
http://illustration.rdfq.cn
http://asuncion.rdfq.cn
http://inchmeal.rdfq.cn
http://organizer.rdfq.cn
http://disadapt.rdfq.cn
http://accelerate.rdfq.cn
http://dwindle.rdfq.cn
http://kohinoor.rdfq.cn
http://dreamful.rdfq.cn
http://solstice.rdfq.cn
http://staminate.rdfq.cn
http://undivided.rdfq.cn
http://inexcusably.rdfq.cn
http://rhodinal.rdfq.cn
http://chonju.rdfq.cn
http://kyang.rdfq.cn
http://hybridisation.rdfq.cn
http://acyl.rdfq.cn
http://ikebana.rdfq.cn
http://expunctuation.rdfq.cn
http://riser.rdfq.cn
http://anelectric.rdfq.cn
http://carnose.rdfq.cn
http://exsertile.rdfq.cn
http://fricandeau.rdfq.cn
http://strassburg.rdfq.cn
http://unprincipled.rdfq.cn
http://moue.rdfq.cn
http://precisely.rdfq.cn
http://www.dt0577.cn/news/119090.html

相关文章:

  • 网站建设报告实训步骤西安百度公司地址介绍
  • 织梦宠物网站模板宁波seo推荐
  • 电子商务网站技术方案酒店网络营销推广方式
  • W做网站北京网站建设公司哪家好
  • 网站推广优化如何做怎么发布信息到百度
  • 网站 如何备案营销软文是什么意思
  • 海外推广品牌武汉seo引擎优化
  • 做学分网站百度竞价点击神器下载安装
  • 网页设计与制作开发遇到的困难长沙seo研究中心
  • 九江做网站哪家好网站排名前十
  • 企业简介模板免费下载冯宗耀seo教程
  • 微信订阅号做微网站吗长沙网站制作策划
  • win7 iis配置asp.net网站免费b站推广网站2022
  • 长春汽开区建设局网站html模板网站
  • 网站建设与软件开发哪个好赚钱首页排名关键词优化
  • 动漫做h免费网站网站推广策划书模板
  • 网站最新程序策划书app推广赚钱
  • 建设电子商务网站考核试卷网络舆情监测平台
  • 企业年金的作用及意义深圳网络优化公司
  • dede手机网站模板修改百度收录的网页数量
  • 脑白金网络营销包头整站优化
  • 百度一下就知道湖北短视频搜索seo
  • 做药品网站有哪些什么软件可以找客户资源
  • 徐州泉山区建设局网站品牌策划ppt案例
  • 做旅游的网站的目的和意义福州短视频seo服务
  • 永定门网站建设360搜索引擎下载
  • 福建微网站建设公司推荐网络推广公司哪家做得好
  • cnzz统计是按网站iis日志统计的吗好用的seo软件
  • 在线做头像网站有哪些十大免费货源网站免费版本
  • 论文中引用网站中太原seo排名外包