使用visitor模式,必须定义两个层次的类:一个应于接受操作的元素(tmember层次)另一个定义于对元素的操作(tmembervisitor 层次)。增加一个新的操作时只需给访问者层次增加一个新的子类。我可能简单的定义新的tmembervisitor子类以增加新的功能。
下面的代码演示上面描述的类tmember的visitor模式的应用
type
tmember = class (tobject)
public
procedure acceptmembervisitor(visitor: tmembervisitor); virtual;
end;
tfield = class (tmember)
public
procedure acceptmembervisitor(visitor: tmembervisitor); override;
end;
tmethod = class (tmember)