0
Tải bản đầy đủ (.pdf) (146 trang)

Mẫu Visitor (mẫu kiểm tra)

Một phần của tài liệu VẬN DỤNG CÔNG NGHỆ HƯỚNG ĐỐI TƯỢNG SỬ DỤNG MẪU THIẾT KẾ ĐỂ PHÁT TRIỂN ỨNG DỤNG TỔ CHỨC VÀ QUẢN LÝ HOẠT ĐỘNG GIAO CÔNG VIỆC (Trang 32 -32 )

4. Túm tắt cấu trỳc của luận văn

1.3.11. Mẫu Visitor (mẫu kiểm tra)

1.3.11.1. í nghĩa

Mẫu Visitor đƣợc dựng để phõn tỏch cỏc thuật toỏn với cấu trỳc của đối tƣợng, tạo điều kiện cho việc thay đổi cỏc phƣơng thức, hàm vào cấu trỳc những đối tƣợng đó cú mà khụng làm thay đổi cấu trỳc này.

1.3.11.2. Cấu trỳc mẫu

í tƣởng của việc tổ chức mẫu này là dựng một cấu trỳc những lớp đúng vai trũ làm “dữ liệu” (lớp Element), mỗi lớp Element này sẽ cài đặt một phƣơng thức

(Accept) nhận một đối tƣợng đúng vai trũ “thuật toỏn” (lớp Visitor) làm tham số hàm. Đối tƣợng “thuật toỏn” Visitor cài đặt những hàm xử lý, thuật toỏn… cho nhiều loại đối tƣợng “dữ liệu”. Trong phƣơng thức Accept của đối tƣợng “dữ liệu” ta phải gọi đỳng hàm xử lý và thuật toỏn tƣơng ứng cho nú.

Kỹ thuật cài đặt này khắc phục đƣợc cỏc hạn chế của kỹ thuật nạp chồng hàm (Function Overloading) và nú cú một tờn gọi khỏc là kỹ thuật double dispatch.

Hỡnh 1.15: Cấu trỳc mẫu Visitor Cỏc thành phần tham gia vào cấu trỳc mẫu Visitor:

Visitor: Khai bỏo một chức năng cho mỗi lớp của ConcreteElement trong cấu trỳc của đối tƣợng.

ConcreteVisitor: đặt chi tiết mỗi chức năng đó đƣợc Visitor khai bỏo ở trờn.

Element: Định nghĩa phƣơng thức Accept lấy Visitor là tham số.

ConcreteElement: Cài đặt cụ thể phƣơng thức Accept với Visitor là tham số.

ObjectStructure: Là chƣơng trỡnh, nú cú thể duyệt qua cỏc thành phần chớnh của nú và cung cấp cỏc giao tiếp cấp cao cho phộp cỏc Visitor cú thể duyệt cỏc thành tố của chớnh nú.

Hỡnh 1.16: Biểu đồ cộng tỏc của mẫu Visitor

Một Client khi sử dụng mẫu Visitor phải tạo một đối tƣợng ConcreteVisitor và sau đú duyệt qua cấu trỳc cỏc đối tƣợng, xem xột cỏc thành phần Element. Với mỗi thành phần Element đƣợc duyệt, nú gọi cỏc phƣơng thức Visitor tƣơng ứng với lớp của nú

1.3.11.4. Cỏc tỡnh huống ỏp dụng

Ta thƣờng sử dụng mẫu Visitor khi một cấu trỳc đối tƣợng chứa nhiều lớp đối tƣợng với nhiều giao tiếp khỏc nhau và ta muốn thực hiện cỏc chức năng trờn cỏc đối tƣợng mà phụ thuộc vào cỏc lớp con (lớp Concrete) của chỳng.

Nhiều chức năng, thao tỏc cần đƣợc thực hiện trờn những đối tƣợng trong một cấu trỳc đối tƣợng và ta muốn trỏnh làm phức tạp cỏc lớp của chỳng vỡ những chức năng thờm vào này. Visitor định nghĩa cỏc chức năng, thao tỏc này riờng vào một lớp khỏc.

Thụng thƣờng, lớp định nghĩa đối tƣợng cấu trỳc hiếm khi bị thay đổi, nhƣng ta thƣờng muốn định nghĩa cỏc chức năng, thao tỏc mới trờn cấu trỳc này. Việc thay đổi cấu trỳc đối tƣợng này đũi hỏi phải định nghĩa lại tất cả cỏc visitor. Do đú, nếu cấu trỳc đối tƣợng thƣờng xuyờn thay đổi, ta nờn định nghĩa cỏc chức năng ngay trong cỏc lớp đú.

1.3.11.5. Thuận lợi và hạn chế

Kỹ thuật Double Dispatch kết hợp với tớnh đa hỡnh (polymophism) đƣợc sử dụng đó thay thế hoàn toàn mệnh đề “If” làm cho mó chƣơng trỡnh dễ dàng mở rộng, hạn chế sự lệ thuộc và thay đổi mó chƣơng trỡnh khi mở rộng.

Tạo khả năng mềm dẻo trong việc thờm mới một hàm, thuật toỏn xử lý,... trờn cỏc đối tƣợng dữ liệu. Khi cần thờm hàm, thuật toỏn xử lý ta chỉ cần thờm vào lớp Visitor và cài đặt lại lớp ConcreteVisitor.

ConcreteVisitor) và những hành vi, phƣơng thức, hàm khụng thay đổi (đƣợc cài trong đối tƣợng dữ liệu ConcreteElement).

Hạn chế của mẫu này là việc tạo thờm một đối tƣợng dữ liệu mới (ConcreteElement) sẽ rất khú khăn, bởi vỡ lỳc đú sẽ làm thờm số phƣơng thức ảo ở lớp Visitor và lỳc đú cỏc phƣơng thức của lớp ConcreteVisitor cũng tăng lờn. Vỡ vậy, ta nờn ỏp dụng mẫu này với những đối tƣợng dữ liệu khụng thay đổi, mở rộng và chỉ cú cỏc hành vi, thuật toỏn, phƣơng thức tỏc động lờn đối tƣợng dữ liệu là đƣợc cải tiến và thay đổi.

CHƯƠNG 2

VẬN DỤNG MẪU THIẾT KẾ HÀNH VI TIẾN HÀNH PHÂN TÍCH

THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG

“TỔ CHỨC VÀ QUẢN Lí HOẠT ĐỘNG GIAO CễNG VIỆC”

Trong chƣơng này, chỳng ta phõn tớch cỏc yờu cầu, nghiệp vụ bài toỏn, chỉ ra cỏc ca sử dụng, cỏc tỏc nhõn của hệ thống, cỏc mụ hỡnh ca sử dụng, mụ tả và làm mịn dần bằng việc mụ tả, phõn tớch từng ca sử dụng. Phần thiết kế chỉ ra mụ hỡnh thiết kế một số ca sử dụng cơ bản. Dựa trờn kết quả phõn tớch và thiết kế, tiến hành xõy dựng cỏc module phần mềm trờn mỏy tớnh.

Một phần của tài liệu VẬN DỤNG CÔNG NGHỆ HƯỚNG ĐỐI TƯỢNG SỬ DỤNG MẪU THIẾT KẾ ĐỂ PHÁT TRIỂN ỨNG DỤNG TỔ CHỨC VÀ QUẢN LÝ HOẠT ĐỘNG GIAO CÔNG VIỆC (Trang 32 -32 )

×