Ví dụ về nhu cầu ứng dụng Strategy

Một phần của tài liệu PHÂN TÍCH & THIẾT KẾ HƯỚNG ĐỐI TƯỢNG DÙNG UML ppt (Trang 163 - 165)

- Rất khó tái sử dụng phương thức này ₫ể tạo ram ột maze có ₫ặc ₫iểm khác (VD: maze trong ₫ó các phòng có thể có bom hoặc quà tặng, cửa giữa các phòng chỉ có

Ví dụ về nhu cầu ứng dụng Strategy

Chương trình chơi game có thể có nhiều giải thuật tùy vào mức ₫ộ khó của cuộc chơi. Khi người chơi chọn mức ₫ộ khó dễ chính là thao tác chọn giải thuật. Do ₫ó ₫ối tượng giải thuật phải tách biệt với code chương trình. Một hướng giải quyết ₫ược ₫ề nghị như sau:

ƒ Định nghĩa 1 interface chung cho các lớp thể hiện các giải thuật.

ƒ Định nghĩa các lớp concrete hiện thực interface trên, mỗi lớp concrete thể

hiện một giải thuật.

ƒ Chương trình sử dụng ₫ối tượng kiểu interface và cho phép client thay thế

bằng ₫ối tượng thể hiện giải thuật cụ thể khi chạy. →hướng giải quyết vấn ₫ề của mẫu Strategy.

Bö mön Cöng nghï phền mï̀m Khoa CNTT

ĐH Bach Khoa Tp.HCM

Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML

Slide 327 Composition Traverse() Repair() compositor->Compose(); compositor Ví d v mu Strategy Chương 11 : Các mẫu Creational Compositor Compose() ArrayCompositor Compose() TeXCompositor Compose() SimpleCompositor Compose() Context ContextInterface() strategy Lược ₫ồ cu trúc ca mu Strategy Strategy AlgorithmInterface() ConcreteStrategyA AlgorithmInterface() ConcreteStrategyB AlgorithmInterface() ConcreteStrategyC AlgorithmInterface()

Bö mön Cöng nghï phền mï̀m Khoa CNTT

ĐH Bach Khoa Tp.HCM

Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML

Slide 329

‰ Strategy (Compositor) :₫ịnh nghĩa interface cho tất cả các lớp thể hiện giải thuật. Có thể nhận pointer ₫ến ₫ối tượng Context trong quá trình khởi tạo ₫ối tượng ₫ể truy xuất dữ liệu trong Context.

‰ ConcreteStrategy (SimpleCompositor, TeXCompositor..) :hiện thực interface Strategy, thể hiện một giải thuật cụ thể.

‰ Context (Composition) :

ƒ tại thời ₫iểm dịch: chỉ sử dụng ₫ối tượng kiểu Strategy khi xác ₫ịnh giải thuật cho vấn ₫ề cần xử lý.

ƒ tại thời ₫iểm run-time: ₫ược cung cấp một ₫ối tượng giải thuật cụ thể thay thế cho ₫ối tượng Strategy.

ƒ có thể cung cấp entry cho phép ₫ối tuợng kiểu Strategy truy xuất dữ liệu.

Các phn t tham gia

Chương 11 : Các mẫu Creational

‰ Thường áp dụng mẫu Strategy trong các trường hợp sau:

ƒ Một lớp có nhiều hành vi loại loại trừ lẫn nhau và quá trình chuyển từ hành vi này sang hành vi khác cần ₫ược thực hiện dễ dàng. Khi ₫ó mỗi hành vi sẽ ₫ược thể hiện trong 1 lớp Concrete Strategy và lớp có nhiều hành vi là lớp Strategy.

ƒ Giải thuật cần ₫ược che dấu cả về dữ liệu và cấu trúc ₫ối với chương trình Client.

‰ Một số chương trình có thể áp dụng Strategy :

ƒ Compiler, OS: quá trình tối ưu hóa

ƒ Game: Quá trình chọn giải thuật

ƒ Các giao diện tổng quát (common dialog trong VB…)

Một phần của tài liệu PHÂN TÍCH & THIẾT KẾ HƯỚNG ĐỐI TƯỢNG DÙNG UML ppt (Trang 163 - 165)

Tải bản đầy đủ (PDF)

(175 trang)