From c346d24ff156172a18afeff6e839f8ed7022b6d6 Mon Sep 17 00:00:00 2001 From: Claudiu Farcas Date: Thu, 29 Apr 2021 07:25:16 +0300 Subject: [PATCH] refactor visitor pattern to use overloads --- behavioral/visitor/VisitorSample.cs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/behavioral/visitor/VisitorSample.cs b/behavioral/visitor/VisitorSample.cs index 2ff6083..043e601 100644 --- a/behavioral/visitor/VisitorSample.cs +++ b/behavioral/visitor/VisitorSample.cs @@ -51,7 +51,7 @@ namespace design_patterns.behavioral.visitor public void Visit(IVisitor visitor) { - visitor.VisitComponentA(this); + visitor.Visit(this); } } @@ -62,7 +62,7 @@ namespace design_patterns.behavioral.visitor public void Visit(IVisitor visitor) { - visitor.VisitComponentB(this); + visitor.Visit(this); } } @@ -71,19 +71,20 @@ namespace design_patterns.behavioral.visitor // visitor to identify the exact class of the component that it's dealing // with. public interface IVisitor { - void VisitComponentA(ComponentA component); - void VisitComponentB(ComponentB component); + // with overloads + void Visit(ComponentA component); + void Visit(ComponentB component); } public class Visitor1 : IVisitor { - public void VisitComponentA(ComponentA component) + public void Visit(ComponentA component) { System.Console.Write($"From {this.GetType().Name} "); component.IamComponentA(); } - public void VisitComponentB(ComponentB component) + public void Visit(ComponentB component) { System.Console.Write($"From {this.GetType().Name} "); component.SomeStuffFromComponentB(); @@ -92,13 +93,13 @@ namespace design_patterns.behavioral.visitor public class Visitor2 : IVisitor { - public void VisitComponentA(ComponentA component) + public void Visit(ComponentA component) { System.Console.Write($"From {this.GetType().Name} "); component.IamComponentA(); } - public void VisitComponentB(ComponentB component) + public void Visit(ComponentB component) { System.Console.Write($"From {this.GetType().Name} "); component.SomeStuffFromComponentB();