当前位置: 首页 > 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.zqtcl.cn/news/453953/

相关文章:

  • 营销模式有哪些seo点击软件哪个好用
  • 信息流网站建设做网站换服务器怎么整
  • html5网站编写wordpress同步到本地
  • php商城网站开发工业设计在线
  • 网站建设发布实训总结网站自适应代码
  • 网站建设与管理是什么摄影网站 蜂鸟
  • 廊坊做网站的大公司wordpress+主题加速
  • 做网站还能挣钱吗网页端
  • 自适应网站建设推荐淘宝详情页设计
  • 手机网站域名设置深圳的网站建设公司怎么样
  • 余姚网站建设设计服务cms网站源码
  • 工作是套模板做网站想做网站制作运营注册什么公司核实
  • 北京网站建设116networdpress导航栏下拉菜单
  • 医院网站建设的目标网络服务许可证
  • 市场部做网站工作职责晋江论坛网
  • 网站怎么吸引人网站优化策略分析
  • 河北建设厅网站衡水网站建设培训学校
  • 新网网站空间到期停了 咋续费网站营销推广应该怎么做
  • 网站建设和编辑实训报告安卓版网页制作软件
  • 网站模板框架站长资讯
  • 上海做网站哪家公司2022年国际国内重大新闻
  • 网站建设如何定位网站建设思路方向
  • 手机网站拦截怎么解除网站生成软件免费制作
  • 中国房地产网站茂名住房和城乡建设厅网站
  • 做网站销售工资怎么样网页设计是哪个专业
  • 吉林省住房城乡建设厅网站首页微商城模板包含哪些
  • 优秀个人网站案例wordpress 文章格式
  • 2019年做网站装修平面设计图的制作
  • 潍坊网站建设top淘宝客网站名
  • 怎么给网站做外链网上接效果图平台