访问者模式 川长思鸟来 2022-09-24 11:25 149阅读 0赞 #include <iostream> #include <list> #include <string> using namespace std; //访问者模式:访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。 //一旦这些操作需要修改的话,接受这个操作的数据结构可以保持不变。 //访问者模式适用于数据结构相对稳定的系统, //它把数据结构和作用于结构上的操作之间的耦合解脱开, //使得操作集合可以相对自由的演化。访问者模式使得增加新的操作变的很容易, //就是增加一个新的访问者类。 //访问者模式将有关的行为集中到一个访问者对象中, //而不是分散到一个个的节点类中。当使用访问者模式时, //要将尽可能多的对象浏览逻辑放在访问者类中,而不是放到它的子类中。 //访问者模式可以跨过几个类的等级结构访问属于不同的等级结构的成员类。 //访问者模式不需要改变基类,根据不同的需求来解决不同的问题,不依赖虚函数。 class Person { public: char * action; virtual void getConclusion() { }; }; class Man :public Person { public: void getConclusion() { if (action == "成功") { cout << "男人成功时,背后多半有一个伟大的女人。" << endl; } else if (action == "恋爱") { cout << "男人恋爱时,凡事不懂装懂。" << endl; } } }; class Woman :public Person { public: void getConclusion() { if (action == "成功") { cout << "女人成功时,背后多半有失败的男人。" << endl; } else if (action == "恋爱") { cout << "女人恋爱时,遇到事懂也装不懂。" << endl; } } }; int main() { list<Person*> persons; Person *man1 = new Man(); man1->action = "成功"; persons.push_back(man1); Person *woman1 = new Woman(); woman1->action = "成功"; persons.push_back(woman1); Person *man2 = new Man(); man2->action = "恋爱"; persons.push_back(man2); Person *woman2 = new Woman(); woman2->action = "恋爱"; persons.push_back(woman2); list<Person*>::iterator iter = persons.begin(); while (iter != persons.end()) { (*iter)->getConclusion(); ++iter; } cin.get(); return 0; }
相关 java 访问者模式_设计模式之访问者模式 public interface Visitor \{ public void visitString(StringElement stringE); public voi 今天药忘吃喽~/ 2022年11月05日 15:55/ 0 赞/ 236 阅读
相关 访问者模式 一、前言 `能力,是你前行的最大保障` 年龄会不断的增长,但是什么才能让你不慌张。一定是能力,即使是在一个看似还很安稳的工作中也是一样,只有拥有`能留下的本事`和`跳出 喜欢ヅ旅行/ 2022年10月17日 10:36/ 0 赞/ 185 阅读
相关 访问者模式 include <iostream> include <list> include <string> using namespace std; 川长思鸟来/ 2022年09月24日 11:25/ 0 赞/ 150 阅读
相关 访问者模式 1.使用场景: 在一个集合中有一些不同的子类对象,需要分别对这些子类对象做处理。常常应用于XML文档的解析、编辑器的解析等。 2.UML表示: 2.1 Visit 比眉伴天荒/ 2022年05月31日 09:27/ 0 赞/ 215 阅读
相关 访问者模式 提供一个访问者对象,这个对象可以通过传入的不同类调用不同方法 像这样: function accept(foo $foo){ $method="visit" ╰半橙微兮°/ 2021年12月21日 00:59/ 0 赞/ 225 阅读
相关 访问者模式 前言 访问者模式(Visitor),表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变元素的类的前提下定义作用于这些元素的新操作。 一、状态抽象类和人的 妖狐艹你老母/ 2021年12月09日 00:55/ 0 赞/ 263 阅读
相关 访问者模式 推荐文章:[https://www.cnblogs.com/edisonchou/p/7247990.html][https_www.cnblogs.com_edisoncho 小灰灰/ 2021年11月11日 02:28/ 0 赞/ 265 阅读
相关 访问者模式 21.访问者模式 ![70][] public abstract class Element { public abst 刺骨的言语ヽ痛彻心扉/ 2021年09月17日 00:08/ 0 赞/ 419 阅读
相关 访问者模式 一 点睛 定义 封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。 二 结构 访问者模式包含以下主要角 电玩女神/ 2021年07月24日 16:40/ 0 赞/ 394 阅读
相关 访问者模式 访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式... 小灰灰/ 2020年06月13日 05:40/ 0 赞/ 615 阅读
还没有评论,来说两句吧...