Mô hình chiến lược

Tram Ho

Bài viết này mô tả quá trình tối ưu hóa behavior các đối tượng theo strategy pattern

Bạn đầu ta có class Gau với duy nhất 1 method hien_thi để show ra hình dáng của các con gấu

Do yêu cầu bài toán, ta thêm hành động “đi” cho các con gấu.

Cách 1

Nhưng do không phải gấu nào đi cũng giống nhau nên ta phải ghi đè ở các subclass

=> Các supclass kế thừa từ superclass “Gau” gây phức tạp, khó bảo trì và mở rộng sau này

Cách 2

=> Tuy các phần biến đổi được được tách ra thành các module độc lập, nhưng việc mở rộng vẫn còn phức tạp do phải tạo ra các subclass kế thừa từ superclass

Cách 3

=> Đến đây ta thấy không còn việc kế thừa giữa các class nữa và việc khởi tạo một object rõ ràng hơn. Nếu muốn mở rộng chỉ cần thêm các class cần thiết vào trong module “Loai”. Việc bảo trì, mở rộng trở nên rất dễ dàng.

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo