首页 > 代码库 > DesignPattern_Behavioral_Visitor
DesignPattern_Behavioral_Visitor
void Main(){ (new Director()).Show(new VisitorA());}class Director{ List<Element> elements = new List<Element>{ new ElementA(), new ElementB() }; public void Show(Visitor v){ foreach (var element in elements) { element.Show(v); } }}abstract class Element{ public abstract void Show(Visitor v);}class ElementA:Element{ public override void Show(Visitor v){ v.ByEleA(this); }}class ElementB:Element{ public override void Show(Visitor v){ v.ByEleB(this); }}abstract class Visitor{ public abstract void ByEleA(ElementA ea); public abstract void ByEleB(ElementB eb);}class VisitorA:Visitor{ public override void ByEleA(ElementA ea){ "EA meet VA".Dump(); } public override void ByEleB(ElementB eb){ "EB meet VA".Dump(); }}class VisitorB:Visitor{ public override void ByEleA(ElementA ea){ "EA meet VB".Dump(); } public override void ByEleB(ElementB eb){ "EB meet VB".Dump(); }}
DesignPattern_Behavioral_Visitor
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。