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

上海品划网络做网站网站规划具体内容

上海品划网络做网站,网站规划具体内容,网络推广经验,西安做网站的公司维护1.定义 在不改变数据结构的前提下#xff0c;增加作用于一组对象元素的新功能。 2.动机 访问者模式适用于数据结构相对稳定的系统它把数据结构和作用于数据结构之上的操作之间的耦合解脱开#xff0c;使得操作集合可以相对自由的演化。访问者模式的目的是要把处理从数据结构…1.定义 在不改变数据结构的前提下增加作用于一组对象元素的新功能。 2.动机 访问者模式适用于数据结构相对稳定的系统它把数据结构和作用于数据结构之上的操作之间的耦合解脱开使得操作集合可以相对自由的演化。访问者模式的目的是要把处理从数据结构分离出来。如果这样的系统有比较稳定的数据结构又有已与变化的算法的话使用访问者模式就是比较合适的因为访问者模式使得算法操作的增加变得更容易。反之亦然。 一句话总结就是访问者不会改变原有系统的数据结构而只是使用原有系统的数据去实现自己的功能。这个实现的功能可以自己定制但是原有系统需要留出这样的访问者应用接口。 3.示例代码 一台电脑中有很多组件CPU、GPU、硬盘。维修人员对电脑进行整体维修时需要对各部件依次进行维修而且每部件具体的维修方式不同。不同的维修人员对相同的部件维修方式可能也不同。维修人员就是访问者。访问者类中实现了针对不同部件的维修方式。电脑就是被访问者。被访问者提供访问接口使用访问者类中实现的不同部件维修方式对内部部件进行访问。 #include iostream #include list using namespace std;class Visitor;//组成Computer的各组件基类 class Element { public:Element(string strName) :m_strName(strName) {}string GetName(){return m_strName;}//组件接受访问者访问的接口virtual void AcceptVisitor(Visitor* pVisitor) 0;private://组件的标识名称string m_strName; };//访问者基类针对不同组件提供不同的访问接口 class Visitor { public:virtual void VisitCPU(Element* pEle) 0;virtual void VisitGPU(Element* pEle) 0;virtual void VisitDISK(Element* pEle) 0; };//Computer类由各组件组成访问者访问Computer时将依次访问各组件 class Computer { public:~Computer(){for (Element* pElement : m_listEle){delete pElement;}}void AddElement(Element* pEle){m_listEle.push_back(pEle);}void DelElement(Element* pEle){m_listEle.remove(pEle);}//访问者访问Computer时将依次访问各组件void AcceptVisitor(Visitor* pVisitor){for (Element* pElement : m_listEle){pElement-AcceptVisitor(pVisitor);}}private:listElement* m_listEle; };//访问者实现类实现各自的访问方法 class VisitorA : public Visitor { public:void VisitCPU(Element* pEle){printf(Visitor A record CPUs name:%s\n, pEle-GetName().c_str());}void VisitGPU(Element* pEle){printf(Visitor A do nothing to GPU:%s\n, pEle-GetName().c_str());}void VisitDISK(Element* pEle){printf(Visitor A change DISK:%s\n, pEle-GetName().c_str());} };class VisitorB : public Visitor { public:void VisitCPU(Element* pEle){printf(Visitor B do nothing to CPU:%s\n, pEle-GetName().c_str());}void VisitGPU(Element* pEle){printf(Visitor B record GPUs name:%s\n, pEle-GetName().c_str());}void VisitDISK(Element* pEle){printf(Visitor B do nothing to DISK:%s\n, pEle-GetName().c_str());} };//组件的实现类调用访问者相应的访问方法 class CPU :public Element { public:CPU(string strName) :Element(strName) {}void AcceptVisitor(Visitor* pVisitor){pVisitor-VisitCPU(this);} };class GPU :public Element { public:GPU(string strName) :Element(strName) {}void AcceptVisitor(Visitor* pVisitor){pVisitor-VisitGPU(this);} };class Disk :public Element { public:Disk(string strName) :Element(strName) {}void AcceptVisitor(Visitor* pVisitor){pVisitor-VisitDISK(this);} };int main() {Computer oComputer;oComputer.AddElement(new CPU(i9-10980XE));oComputer.AddElement(new GPU(Titan RTX));oComputer.AddElement(new Disk(HOF PRO M.2));VisitorA oVisitorA;VisitorB oVisitorB;oComputer.AcceptVisitor(oVisitorA);oComputer.AcceptVisitor(oVisitorB);return 0; } 4.组成结构 Visitor 是抽象访问者为该对象结构中的 ConcreteElement 的每一个类声明一个 visit 操作ConcreteVisitor 是一个具体的访问值 实现每个有 Visitor 声明的操作是每个操作实现的部分.ObjectStructure 能枚举它的元素 可以提供一个高层的接口用来允许访问者访问元素Element 定义一个 accept  方法接收一个访问者对象ConcreteElement 为具体元素实现了 accept  方法 5.引用 C设计模式——访问者模式 - 冰糖葫芦很乖 - 博客园 (cnblogs.com)
http://wiki.neutronadmin.com/news/63812/

相关文章:

  • phpcms网站模板下载网站开发人员的行业分析
  • 企业网站搜索引擎优化方案wordpress stmp
  • cms建站系统 下载平面设计行业市场分析
  • 网站 粘度后台网站模板 html
  • 做网站小编怎么样网站流量排行
  • 东莞找网站设计seo排名优化收费
  • 手机网站专题导航网站好处
  • 成都网站开发多少钱工程认证网站的建设
  • 什么颜色做网站好看网站开发说明
  • 做网站设计哪里有淮安做网站公司
  • 上海平台网站建设在线个人资料制作网站
  • 自己服务器建设网站建网站公司 深圳
  • 网站域名及空间购买学建筑的网站
  • 毕业设计网站建设英文文献如何做自已网站
  • 提供响应式网站建设阿里云国外服务器
  • 网站主机的类型徐州做网站哪里好
  • 新塘17网站一起做网店官网做舞台灯光的在哪些网站接订单呢
  • 网站制作 番禺wordpress seo什么意思
  • 从化免费网站建设郑州旅游网站设计
  • 湛江专业自助建站详细解读企业网站icp是什么
  • 十大网站在线观看域名解析到wordpress
  • 龙华网站建设推广外包猎头公司招聘信息
  • 宁波网站建设科技有限公司建站设计公司
  • 网页制作创建站点内容小程序源码网网盘
  • 我做网站可以赚钱吗公司建立网站流程图
  • 正版素材网站新闻最新热点
  • 做网站公司能赚钱吗彩票app开发制作多少钱
  • 做社交网站要注册哪类商标励志做的很好的网站
  • 游戏 网站 模板wordpress菜单栏设置
  • 网站开发遇到的问题车工订单网站