访问者模式
其他二十三种设计模式
#include<iostream>
#include<list>
using namespace std;
class Action;
class Person {
public:
virtual void Accept(Action* _visitor) = 0;
};
class Man;
class Woman;
class Action {
public:
virtual void GetManConclusion(Man* _concreteElement) = 0;
virtual void GetWomanConclusion(Woman* _concreteElement) = 0;
};
class Man :public Person {
public:
string GetMan() {
return man;
}
virtual void Accept(Action* _visitor) {
_visitor->GetManConclusion(this);
}
private:
string man = "男人";
};
class Woman :public Person {
public:
string GetWoman() {
return woman;
}
virtual void Accept(Action* _visitor