1. Trang chủ
  2. » Luận Văn - Báo Cáo

thiết kế phần mềm hướng đối tượng hướng TEMPLATE METHOD STRATEGY

34 241 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 739,58 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Định nghĩa• Strategy là mẫu chiến lược xác định một nhóm thuật toán, đóng gói từng thuật toán và làm cho chúng có thể thay đổi • Strategy cho phép thuật toán thay đổi một cách độc lập vớ

Trang 1

THIẾT KẾ PHẦN MỀM HƯỚNG ĐỐI TƯỢNG

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH

KHOA CÔNG NGHỆ THÔNG TIN

TEMPLATE METHOD & STRATEGY

Trang 2

STRATEGY PATTERN

Trang 3

•Định

nghĩa

2

•Mụ

c đích

3

•Cấu

trúc

4

•Nhữn

g trường

h

ợp á

p dụng

5

•Mộ

t s

ố v

í dụ

6

•Tín

h chất

7

•Ưu, như

ợc điểm

8

•Các

mẫu liê

n quan

9

•Dem

o

NỘI DUNG

Trang 4

1 Định nghĩa

• Strategy là mẫu chiến lược xác định một nhóm thuật toán, đóng gói từng thuật

toán và làm cho chúng có thể thay đổi

• Strategy cho phép thuật toán thay đổi một cách độc lập với các client sử dụng nó

• Cung cấp một nhóm thuật toán cho phép client chọn lựa linh động một thuật toán

cụ thể khi sử dụng

Trang 5

2 Mục đích

• Giảm độ phức tạp của mã nguồn

• Tránh sự rắc rối khi phải hiện thực một chức năng nào đó qua quá nhiều lớp con

• Dễ tu sửa, bảo dưỡng mà không ảnh hưởng trực tiếp đến client

• Dễ dàng thay đổi thuật toán

• Các thuật toán khác nhau sẽ phù hợp với các thời điểm khác nhau

Trang 6

3 Cấu trúc

Context: Sử dụng giao diện này

để gọi thuật toán được định

nghĩa bởi ConcreteStrategy

Strategy: Mô tả một giao diện

chung cho tất cả các thuật toán được hỗ trợ

Triển khai các thuật toán sử dụng

giao diện Strategy

Trang 8

5 Một số ví dụ

Ví dụ 1:Chúng ta đang ở KTX D2 cần đi chuyển đến trường và có 3 cách để đi đó là đi bộ hoặc đi xe buýt hoặc là đi Grab và vấn đề đặt ra là cần chọn một trong 3 cách trên đến trường sao cho hợp lý và nhanh nhất.

Trang 9

5 Một số ví dụ

Trang 10

-strategy

Trang 11

5 Một số ví dụ

Ví dụ2: Sắp xếp dãy số cho trước.

Trang 13

7 Ưu, nhược điểm

• Chủ yếu tập trung vào hệ thống hoá các thuật toán có liên quan.

• Dễ dàng thay đổi và mở rộng thuật toán mà không ảnh hưởng đến client.

• Các thuật toán khác nhau được xử lý tách rời nên dễ dàng quản lý.

• Loại bỏ các câu lệnh điều kiện khi chọn một chiến lược phù hợp.

• Sử dụng các thuật toán trên một giao diện.

7.1 Ưu điểm

Trang 14

7 Ưu, nhược điểm

• Tăng độ phức tạp của mã tổng thể do tạo nhiều lớp bổ sung

• Client phải biết được sự khác biệt giữa các chiến lược để chọn một chiến lược phù hợp

• Vấn đề giao tiếp giữa Strategy và Context

7.2 Nhược điểm

Trang 15

8 Các mẫu liên quan

• Decorator cho phép thay đổi bề ngoài của một đối tượng, một strategy cho phép thay đổi ruột của đối tượng

8.2 Decorator

Trang 16

8 Các mẫu liên quan

• Template method

• Decorator

Trang 17

8 Các mẫu liên quan

• Mẫu Template Method giống mẫu Strategy ở chỗ nó dựa trên thuật toán, định nghĩa các lớp thuật toán và xử lý ở lớp con

• Cho phép lớp con định nghĩa lại cách thực hiện của một thuật toán mà không phải thay đổi cấu trúc thuật toán

8.1 Template method

Trang 18

9 Demo

Bài Toàn sắp xếp dãy số (tăng/giảm)với các giải thuật khác nhau

Trang 19

TEMPLATE METHOD

Trang 20

NỘI DUNG

Trang 21

1 Định nghĩa

• Xác định một bộ khung chung của một thuật toán trong một chức năng

• Các phương thức mẫu cho phép các lớp con xác định lại các bước nhất định mà không ảnh hưởng đến cấu trúc của thuật toán

Trang 22

2 Mục đích

• Tạo sự thống nhất đồng bộ giữa Template method và lớp con

• Tránh sự lặp lại vì phần chung đã định nghĩa rồi, chỉ cần định nghĩa phần riêng

• Tiết kiệm tài nguyên

Trang 23

3 Cấu trúc

TemplateMethod: Phần khung để

cài đặt cấu trúc chung của thuật

toán.

PrimitiveOperation: Thay đổi theo

ngữ cảnh, việc cài đặt được ủy nhiệm cho lớp kế thừa.

Trang 24

4 Những trường hợp áp dụng

• Thực hiện các phần chung của thuật toán và để các lớp con thực hiện hành

vi có thể thay đổi

• Tránh lặp lại phần chung giữa các lớp con

• Kiểm soát các phần mở rộng của lớp con

Trang 25

5 Một số ví dụ

Ví dụ 1:

Trang 26

5 Một số ví dụ

Ví Dụ 1:Thời Gian Biểu

Trang 27

5 Một số ví dụ

Ví Dụ 1:Sắp Xếp Dãy Số Tăng/Giảm

Trang 28

7 Ưu, nhược điểm

• Khó mở rộng, phụ thuộc quá nhiều vào lớp cơ sở.

• Khó khăn trong việc thiết lập các chức năng.

• Khó khăn trong việc duy trì.

7.2 Nhược điểm

Trang 30

7 Ưu, nhược điểm

• Hạn chế được phần lớn lượng code giống nhau vì lớp con chỉ cần phải thay đổi 1 vài bước trong thuật toán cho phù hợp.

• Thay đổi thuật toán ở lớp con dễ dàng.

• Dễ dàng kiểm soát các lớp con có chung một thuật toán của lớp Abstract.

• Lợi dụng tính đa hình của lớp cha để gọi các lớp con, các lớp con sẽ thừa kế những thuộc tính đã có của lớp cha mà không phải cài đặt lại.

7.1 Ưu điểm

Trang 31

8 Các mẫu liên quan

• Factory Method

• Strategy

Trang 32

8 Các mẫu liên quan

• Factory Method thường được gọi bởi Template Method

• Đều để subclass triển khai abstract method từ lớp cha

• Tuy nhiên, Factory method thuộc nhóm Creational (Nhóm khởi tạo) nên mục đích là khởi tạo ra đối tượng, còn Template method là để lớp con quyết định nội dung

8.1 Factory method

Trang 33

8 Các mẫu liên quan

• Template method sử dụng thừa kế để thay đổi một phần của một thuật toán Strategy sử dụng ủy quyền để thay đổi toàn bộ thuật toán

8.2 Strategy

Trang 34

9 Demo

Bài Toán Sắp Xếp Tăng Giảm

Ngày đăng: 25/02/2019, 22:16

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w