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

云南旅行社网站设计网页设计制作网站用什么软件

云南旅行社网站设计,网页设计制作网站用什么软件,怎样安全做黑色彩票网站,WordPress中文seo1. 意图 表示一个作用于某对象结构中的各元素的操作。 使你可以在不改变各元素的类的前提下定义于作用于这些元素的新操作。 2. 五种角色 抽象访问者(Visitor)、具体访问者(Concrete Visitor)、抽象元素(Element)、 具体元素(Concrete Element)、对象结构(ObjectStructure) 3…1. 意图 表示一个作用于某对象结构中的各元素的操作。 使你可以在不改变各元素的类的前提下定义于作用于这些元素的新操作。 2. 五种角色 抽象访问者(Visitor)、具体访问者(Concrete Visitor)、抽象元素(Element)、 具体元素(Concrete Element)、对象结构(ObjectStructure) 3. 优点 3.1 易于增加新的操作 3.2 集中相关的操作而分离无关的操作 3.3 可以访问不具有相同父类的对象 4. 缺点 4.1 增加新的具体元素很困难 4.2 可能累积状态 4.3 可能破坏元素的封装性 5. 相关模式 5.1 访问者可以对一个由Composite模式定义的对象结构进行操作。 5.2 访问者可以用于解释器。 6. 代码示意 #pragma once #include vector #include string #include iostream using namespace std;class ElementA; class ElementB;class Visitor { public:virtual void VisitElementA(ElementA* pElementA) 0;virtual void VisitElementB(ElementB* pElementB) 0; };class ConcreteVisitor1 : public Visitor { public:virtual void VisitElementA(ElementA* pElementA);virtual void VisitElementB(ElementB* pElementB); }; class ConcreteVisitor2 : public Visitor { public:virtual void VisitElementA(ElementA* pElementA);virtual void VisitElementB(ElementB* pElementB); };class Element { public:virtual void Accept(Visitor* pVisitor) 0; };class ElementA : public Element { public:virtual void Accept(Visitor* pVisitor) {pVisitor-VisitElementA(this);}void OperationA(const string name) {cout ElementA 来自 name 的访问 endl;} };class ElementB : public Element { public:virtual void Accept(Visitor* pVisitor) {pVisitor-VisitElementB(this);}void OperationB(const string name) {cout ElementB 来自 name 的访问 endl;} };class ObjectStructure {vectorElement* m_elememts; public:ObjectStructure() {m_elememts.emplace_back(new ElementA());m_elememts.emplace_back(new ElementB());}~ObjectStructure() {auto it m_elememts.begin();while (it ! m_elememts.end()) {delete* it;it;}}void Visit(Visitor* pVisitor) {auto it m_elememts.begin();while (it ! m_elememts.end()) {(*it)-Accept(pVisitor);it;}} }; Visitor.cpp: #include Visitor.hvoid ConcreteVisitor1::VisitElementA(ElementA* pElementA) {pElementA-OperationA(Visitor1); }void ConcreteVisitor1::VisitElementB(ElementB* pElementB) {pElementB-OperationB(Visitor1); }void ConcreteVisitor2::VisitElementA(ElementA* pElementA) {pElementA-OperationA(Visitor2); }void ConcreteVisitor2::VisitElementB(ElementB* pElementB) {pElementB-OperationB(Visitor2); } #include Visitor.h int main() {ObjectStructure* pObjStructure new ObjectStructure();Visitor* pVisitor new ConcreteVisitor1();pObjStructure-Visit(pVisitor);delete pVisitor;pVisitor new ConcreteVisitor2();pObjStructure-Visit(pVisitor);delete pVisitor;delete pObjStructure;return 0; } 运行结果 6.1 ObjectStructure提供访问所有元素的接口 6.2 增加新的ConcreteVisitor3就可以定义一个新的操作(3.1) 6.3 抽象Visitor里的接口集中了相关的操作(3.2) 6.4 增加新的ElementC所有Visitor类和ObjectStructure都要修改(4.1)
http://www.pierceye.com/news/453953/

相关文章:

  • 优化推广网站网站建设的岗位职责
  • 网站建设制作设计优化兰州如何用织梦建网站
  • wordpress 网站禁用全屏代码百度怎么建设网站
  • 强军网网站建设北京各大网站推广服务公司
  • 西安优秀的集团门户网站建设公司网站建设中 优秀账户的标准
  • 网站建设的对比分析移动设备网站开发注意点
  • 在word上怎么做网站链接网站开发试题
  • 自己做网站新手入门淮北论坛招聘网
  • 建网站的意义大学跳蚤市场网站建设
  • 平阳做网站成都网站优化公司哪家好
  • 庆阳北京网站建设广东省建设工程执业中心网站
  • 佛山哪里有做网站的大学生文创产品设计
  • 电商网站建设运城网站图片链接怎么做的
  • 服务器建网站教程宁波网络营销推广制作
  • 微信公众号属于网站建设网站云解析域名解析
  • 网站的建设及推广在哪找可以做网站的
  • 网站经常修改好不好北京互联网公司50强
  • 知识网站有哪些h5用什么制作
  • 广州网站制作联系方式上海共有多少家企业
  • 自己建一个网站需要什么网站关键词分析工具
  • 建三江建设局网站四川省建设厅官方网站电话
  • 福建志佳建设工程发展有限公司网站vi品牌包装
  • 专业门户网站开发公司龙岩正规全网品牌营销招商
  • 网站怎么做qq微信登陆政务网站的建设时期的概述
  • 购物网站的目的和意义西安做网站xamokj
  • 厦门市建设局网站网站开发周记30篇
  • 工业园区门户网站建设方案塘沽网站开发
  • 郑州网站设计 公司驻马店市可以做网站的公司
  • 推荐盐城网站开发安陆网站开发
  • wordpress中文网站模板软件开发者路线图