Design Pattern: Builder

Hello. Chào mừng các bạn đến với chủ đề : Tìm hiểu về Design Pattern.

Hôm nay chúng ta cùng tìm hiểu về mẫu thiết kế tiếp theo trong nhóm: Creation Pattern.

 Đó là mẫu : Builder Design Pattern
1. Bài toán ví dụ thực tế cho mẫu Builder Pattern.

Giả sử chúng ta cần xây dựng một hệ thống các cửa hàng bán đồ điện tử. Và mỗi cửa hàng sẽ được đặt ở một địa điểm riêng.

Tất cả đều xây dựng theo chuẩn module, 1 thiết kế.

Mỗi cửa hàng sẽ có một bản danh sách quản lý thông tin tất cả nhãn hiệu các sản phẩm của mình.

Giả sử khách hàng muốn đến shop tại địa điểm nào đó, và xem thông tin về sản phẩm, hãy show cho họ xem.

Bài toán trên khi triển khai, sẽ thực hiện áp dụng mẫu design pattern builder.

– Việc xây dựng nhiều cửa hàng với thiết kế 1 module sẽ cho ta thấy việc áp dụng 1 lớp cơ sở trừu tượng, và các lớp con kế thừa.

– Các lớp con kế thừa này chính là các cửa hàng tại mỗi địa điểm. Các lớp con sẽ thực hiện việc tạo sản phẩm, và lưu thông tin về sản phẩm.

– sản phẩm sẽ được một lớp quản lý gọi là lớp sản phẩm, nó chứa đẩy đủ các thông tin cho từng sản phẩm, ví dụ thông tin là tên, sẽ có tên điện thoại, tên tivi, tên máy tính….được lưu bởi các biến.

– Một lớp thứ 3 là lớp đại diện nó thực hiện nhiệm vụ xây dựng shop, và gọi hàm lưu các thông tin về sản phẩm cho shop.

Như vậy chúng ta có :

+ Lớp cơ sở ảo shop.

+ Class kế thừa shop đại diện cho shop từng khu vực.

+ Lớp quản lý các sản phẩm.

+ Class giao diện, thực hiện tạo shop và lưu trữ các thông tin cho sản phẩm, đồng có thể lấy được thông tin sản phẩm khi cần.

2. Sơ đồ UML Cho builder.

 

Áp dụng cho bài toán thực tế.

 

3. Thực hành builder pattern với c++.

– Đầu tiên hãy xây dựng lớp sản phẩm chưa các thông tin sản phẩm.

– Tiếp theo xây dựng lớp cơ sở builder và các lớp kế thừa.

– Xây dựng lớp Director tạo các builder và lưu thông tin sản phẩm. Sau đó là sử dụng các đối tượng trong hàm main.

Ok. Đó là mẫu thiết kế Builder. Về cơ bản Build sử dụng một lớp director để xây dựng lên các builder, và các thông tin sản phẩm nằm trong builder.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.