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

东营市两学一做考试网站中文的网站做不成二维码

东营市两学一做考试网站,中文的网站做不成二维码,美工背景图素材,网站建设用什么视频播放器C 设计模式之访问者模式 简介 1、访问者模式 #xff08;Visitor#xff09;是一种行为型设计模式#xff0c;它表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 使用该模式可以在不修改已有程序结构的前提…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::vectorDocumentElement* 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://www.tj-hxxt.cn/news/130033.html

相关文章:

  • 贵阳网站开发外包公司wordpress+小米
  • 招标网站开发文档互联网软件开发工程师
  • 网站开发的实践报告手机网站的做
  • 企业网站的建设多少钱岳麓书院网页制作
  • 网站的pdf目录怎么做的做网站的流量怎么算钱
  • 网站开发方案模板传媒 wordpress
  • 做网站 做appwordpress去除版权信息
  • 搬瓦工可以长期做网站WordPress无法写博客头像
  • 做词频云图的网站gzip网站优化
  • 陕西省城乡住房建设部网站最新的跨境电商平台有哪些
  • 没有网站可以做app吗wordpress菜单加粗
  • 班级博客网站模板wordpress从零开始
  • wordpress建2个网站吗新密网站
  • 园林设计网站大全网站互动性
  • 广东高端建设网站安徽网络优化方案
  • 四川手机网站有哪些消防证怎么考取需要什么条件
  • wordpress识别手机跳转网站动易网站系统怎么样
  • 商会网站怎么做wordpress图片浏览
  • 网站建设考试题目望野思想感情
  • 做sns网站需要什么pyton怎么做网站的代码
  • 怎么看国外设计网站手机网站制作 费怎么做分录
  • 如何做一个手机网站开发一个企业官网多少钱
  • 前端asp网站开发有什么平台可以推广
  • 吴中区两学一做网站北京网络运维公司
  • 宠物出售的网站怎么做seo优化
  • 推荐几个做网站比较好的公司北京城建建设工程有限公司网站
  • 湖南做网站kaodezhuseo超级外链工具
  • 淘宝券搜索网站怎么做哪家网站建设
  • 网站媒体作风建设年工作总结seo搜索引擎优化介绍
  • 南昌企业网站模板建站wordpress安全插件对比