Mục lục
Strategy Design Pattern được sử dụng để 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ể hoán đổi cho nhau. Strategy cho phép thuật toán thay đổi độc lập với các clients sử dụng nó.
Nói một cách dễ hiểu hơn thì nó sẽ cùng cấp nhiều giải pháp cho chúng ta, để có thể chọn một giải pháp trong runtime.
Để hiểu rõ hơn cho lời giải thích trên, các bạn hãy xem qua sơ đồ dưới đây.
Trong sơ đồ trên, chúng ta có một Task (nhiệm vụ) và có ba Solution (giải pháp). Điều đó có nghĩa là sử dụng một trong ba giải pháp trên chúng ta có thể hoàn thành nhiệm vụ.
Theo Strategy Design Pattern, giải pháp nào nên được sử dụng sẽ do client xác định trong runtime. Vì vậy client có thể sử dụng giải pháp một, hai hoặc ba để đạt được nhiệm vụ trong runtime.
Trong phần này mình sẽ thực hiện triển khai Strategy Design Pattern trong C# thông qua một ví dụ cụ thể. Các bạn cùng mình thực hiện theo trình tự các bước nhé.
Bước 1: Tạo interface ICompression.
Class này khai báo một interface chung cho tất cả các thuật toán được hỗ trợ. Trong class định nghĩa phương thức CompressFolder()
.
ICompression.cs
|
Bước 2: Tạo hai class RarCompression và ZipCompression.
RarCompression.cs
|
ZipCompression.cs
|
Bước 3: Tạo class CompressionContext.
Class này chứa một thuộc tính được sử dụng để giữ tham chiếu của một đối tượng Strategy. Thuộc tính này sẽ được clients đặt tại run-time theo thuật toán được yêu cầu.
CompressionContext.cs
|
Bước 4: Tạo client.
Trong class này ta sẽ khởi tạo đối tượng ConpressionContext và truyền cho nó tên file. Sau đó 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!
+ -:
+ -: