Mục lục
Composite Design Pattern có chức năng sắp xếp các đối tượng thành cấu trúc cây để thể hiện một cấu trúc phân cấp. Nó cho phép chúng ta xử lý các đối tượng riêng lẻ và bố cục của các đối tượng một cách đồng nhất.
Mỗi nút trong cấu trúc cây thực hiện một nhiệm vụ. Composite Design Pattern được sử dụng khi chúng ta cần xử lý một nhóm đối tượng như việc xử lý một đối tương riêng lẻ.
Ví dụ: Chúng ta có một chiếc máy tính, trong máy tính có rất nhiều các thiết bị nhỏ khác. Đó là các đối tượng riêng lẻ và máy tính chính là đối tượng tổng hợp. Khi muốn hoàn thành một chiếc máy tính ta cần lắp ráp từng thiết bị nhỏ theo một cấu trúc nhất định có sẵn.
Trong phần này mình sẽ thực hiển triển khai Composite Design Pattern trong C# thông qua một ví dụ cụ thể. Giả sử chúng ta cần lắp ráp một chiếc máy tính, khi đó cần tách nhỏ các thiết bị và xem định giá của nó.
Mình sẽ thực hiện chương trình theo từng bước như sau:
Bước 1: Tạo interface IComponent.
Ở đây chúng ta sẽ định nghĩa các chức năng chung của chương trình, ví dụ mình định nghĩa giá của các thiết bị.
IComponent.cs
|
Bước 2: Tạo class Leaf.
Class này triển khai interface IComponent, do đó chúng ta cần cung cấp triển khai cho phương thức DisplayPrice()
. Tạo hai thuộc tính name, price để hiển thị tên thiết bị và giá của nó.
Cuối cùng sẽ hiển thị hai thuộc tính này bằng cách sử dụng phương thức DisplayPrice()
.
Leaf.cs
|
Bước 3: Tạo class Composite.
Trong class sử dụng phương thức AddComponent()
để thêm các thành phần con, vì đây là class tổng hợp các thành phần. Class này thực hiện interface IComponent và là một phần của phương thức DisplayPrice()
.
Composite.cs
|
Bước 4: Tạo class Program.
Trong class này chúng ta cần tạo cấu trúc cây, sau đó hiển thị giá thành phần tương ứng bằng cách gọi phương thức DisplayPrice()
.
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!
+ -:
+ -: