12/08/2018, 17:59

Single Dispatch and Double Dispatch with Visitor Design Pattern in Java [Part 2]

Ở bài trước, mình đã giới thiệu về khái niệm single dispatch và double dispatch, chúng ta cũng đã biết rằng java chỉ hỗ trợ single dispatch, nên để có thể sử dụng được double dispatch trong java, chúng ta phải có cách tiếp cận khác, một trong số đó là sử dụng design parttern, mà cụ thể ở đây là ...

Ở bài trước, mình đã giới thiệu về khái niệm single dispatch và double dispatch, chúng ta cũng đã biết rằng java chỉ hỗ trợ single dispatch, nên để có thể sử dụng được double dispatch trong java, chúng ta phải có cách tiếp cận khác, một trong số đó là sử dụng design parttern, mà cụ thể ở đây là Visitor parttern.

Mở đầu

Trong thiết kế hướng đối tượng, Visitor là mẫu thiết kế (Design Patterns) cho phép định nghĩa các thao tác (operations) trên một tập hợp các đối tượng (objects) không đồng nhất (về kiểu) mà không làm thay đổi định nghĩa về lớp (classes) của các đối tượng đó. Để đạt được điều này, trong mẫu thiết kế visitor ta định nghĩa các thao tác trên các lớp tách biệt gọi các lớp visitors, các lớp này cho phép tách rời các thao tác với các đối tượng mà nó tác động đến. Với mỗi thao tác được thêm vào, một lớp visitor tương ứng được tạo ra.

Visitor Design Pattern Class Diagram

Nhìn vào biểu đồ ULM trên, chúng ta có thể nhận thấy được sự phụ thuộc của các đối tượng trong mẫu thiết kế này,

How to implement

Gỉa sử chúng ta có một bài toán như sau, bạn là một ladykiller, bạn muốn tỏ tình vs một cô gái nhưng không biết quốc tịch của cô gái ấy là gì, đơn là là chúng ta không thể nói anh yêu em với một cô gái người Nhật Bản được, vì cô ấy sẽ chẳng hiểu gì cả, thay vì vậy chúng ta sẽ nói "aishite imasu"             </div>
            
            <div class=

0