Visitor Pattern (Mẫu Visitor)
Định nghĩa (Definition)
Visitor đại diện cho một thao tác được thực hiện trên các phần tử của object structure. Nó cho phép định nghĩa thao tác mới mà không thay đổi class của phần tử mà nó tác động.
Ví dụ Coffee Shop
Menu có nhiều loại item: CoffeeItem, PastryItem, và ComboItem. Muốn tạo các báo cáo khác nhau — báo cáo giá, báo cáo calo, và danh sách nguyên liệu — mà không thêm method vào mỗi loại item. Mỗi báo cáo là một Visitor.