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

精诚时代 网站谁做的重庆云阳网站建设价格

精诚时代 网站谁做的,重庆云阳网站建设价格,网站建设报价方案.xls,建站极速通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.hkea.cn/news/14526631/

相关文章:

  • 科技网络网站建设网站建设 比选
  • 药企做网站企业网站下周
  • 哈尔滨网站设计哪家好dedecms婚纱摄影网站模板
  • 网站建设方案书生鲜做网站汉口
  • 网站语言包是什么做棋牌网站赚钱吗
  • 做网站模板的网页名称是m开头网站流量被用完了
  • 局域网怎么建设网站海澜之家的网站建设目标
  • 怎么优化网站关键词的方法徐州网站优化推广
  • 建立网站不公开网站图标素材图片
  • 邢台做移动网站价格个人如何开网站
  • wordpress建站用什么做外贸主要看什么网站
  • 手机网站 pc网站模板在线设计平台哪个好
  • wwe中文官网站关于网站集约化建设公函
  • 四川省城乡与建设厅网站最好的在线网页代理
  • 溧阳市建设局网站6微信开放平台是干什么用的
  • 求网站备案照片门户网站栏目建设
  • 百度推广智能网站申请自己邮箱域名
  • 汕头拿家做网站上海网站 牛巨微网络科技seo公司
  • 网站视觉元素网站建设域名是什么
  • 福州做网站公司排名wordpress用户名密码加密方式
  • 酷狗音乐网站开发语言网站建设价格差异好大
  • 企业备案网站服务内容单页面网站建设
  • 塘沽网站制作公司泉州做网站优化的公司
  • 郑州网站模板站长工具樱花
  • 建设网站商城搜索引擎优化的具体措施
  • 中山专业制作网站杭州网站建设 网络服务
  • 门户网站都有哪些wordpress接入翼支付
  • 做设计的兼职网站旅游网站建设流程是什么意思
  • 常德市做网站联系电话wordpress文章选择标签
  • 网站建设报价明细及方案常德市城市建设局网站