Mục lục
Visitor Design Pattern được sử dụng để thay đổi thuật toán thực thi của một đối tượng phần tử. Bằng cách này, khi visitor truy cập khác nhau, thuật toán thực thi của đối tượng cũng có thể khác nhau.
Visitor Design Pattern nên được sử dụng khi chúng ta có các hoạt động riêng biệt. Các hành động này không liên quan với nhau để thực hiện trên một cấu trúc của đối tượng.
Ví dụ: Giả sử mình có một trường học và trong tường có rất nhiều học sinh. Một ngày nó, nhà trường mời một bác sĩ khoa nhi đến khám cho các học sinh. Công việc của bác sĩ là đến thăm trường và khám cho các em học sinh.
Trong đó:
Trong phần này mình sẽ thực hiện triển khai Visitor Design Pattern trong qua một ví dụ cụ thể sau đây. Các bạn hãy cùng mình thực hiện theo trình tự các bước nhé.
Bước 1: Tạo interface IElement.
Trong class khai báo một phương thức Accept()
lấy interface IVistor làm đối số.
IElement.cs
|
Bước 2: Tạo class Kid.
Class này thực hiện phương thức Accept()
được xác định bởi interface IElement.
Kid.cs
|
Bước 3: Tạo interface IVisitor.
Trong class này khai báo một phương thức Visit()
nhận interface IElement làm đối số.
IVisitor.cs
|
Bước 4: Tạo class Doctor.
Class này thực hiện từng thao tác được khai báo bởi interface IVisitor. Mỗi hoạt động thực hiện một phân đoạn của thuật toán cần thiết cho đối tượng đó.
Doctor.cs
|
Bước 5: Tạo class Saleman.
Class này cũng thực hiện các thao tác được xác định bởi interface IVistor.
Salesman.cs
|
Bước 6: Tạo class School.
Trong class này có thể liệt kê các phần tử của nó và cung cấp một interface để cho phép Visitor truy cập vào các phần tử của nó.
School.cs
|
Bước 7: Tạo class Program để chạy chương trình và kiểm tra kết quả.
Program.cs
|
Kết quả:
Về bài trước... |
Bài tiếp theo... |
+ Lê Văn Thuyên-0379136392:Cảm ơn quý vị và các bạn đã vào Website của Lê Thuyên! Lê thuyên rất mong nhận được sự góp ý của quý vị và các bạn cho sự phát triển của website này. Xin chân thành cảm ơn!
* Dũng Trung-090567448:Lê Văn Thuyên0379136392--->Ok.Anh!
* Bé Nguyễn-benguyen@gmail,com:Lê Văn Thuyên0379136392--->Good job!
+ -:
+ -: