Mid GoF Patterns

Concrete Visitor Class (ShoppingCart):?

  • The concrete visitor ShoppingCart implements the IShoppingCartVisitor

interface. It performs specific operations on each element, like calculating the total

cost with any applicable discounts. For instance, it applies a 10% discount to books

but no discount to fruits.

public class ShoppingCart : IShoppingCartVisitor

private double _total;

public void Visit(Book book) => _total += book.Price * 0.9; //

10% discount on books

public void Visit(Fruit fruit) => _total += fruit.Price; // No

discount on fruits

public double GetTotal() => _total;

More from Design Patterns in C#

All questions for this course