MessageModel 實體類別
namespace Pattern.Visitor
{
public class MessageModel
{
public MessageModel(string msg, DateTime pt)
{
this._message = msg;
this._publishTime = pt;
}
private string _message;
public string Message { get { return _message; } set { _message = value; } }
private DateTime _publishTime;
public DateTime PublishTime { get { return _publishTime; } set { _publishTime = value; } }
}
}
AbstractElement 抽象元素
namespace Pattern.Visitor
{
public abstract class AbstractElement
{
public abstract string Accept(AbstractVisitor abstractVisitor);
}
}
角色對應
MessageModel:資料實體(本範例中由 Message 類別包裝)。
AbstractElement:定義 Accept(Visitor),元素透過雙重分派呼叫訪問者的 Visit。
AbstractVisitor:定義 Visit(Element),具體訪問者實作具體操作。