Khái niệm:
Tách biệt phần constrcution của một đối tượng phức tạp khỏi phần
representation của nó để các tiến trình constrcution giống nhau có thể
tạo ra các representation khác nhau.
Mức độ sử dụng: thấp
UML Class Diagram:
Những lớp và/hoặc đối tượng trong mẫu thiết kế này:
- Builder (VehicleBuilder): định nghĩa một abstract interface để tạo ra các phần của một đối tượng Product.
- ConcreteBuilder (MotorCycleBuilder, CarBuilder, ScooterBuilder):
+ xây dựng và gom các phần của product bằng cách thực thi Builder interface.
+ khai báo và theo dõi phần representation mà nó tạo ra.
+ đưa ra một interface để lấy product.
- Director (Shop): xây dựng một đối tượng bằng việc sử dụng Builder interface.
- Product (Vehicle):
+ đại diện cho đối tượng phức tạp đang được xây dựng.
ConcreteBuilder xây dựng phần representation bên trong của product và
định nghĩa tiến trình mà nó đã ráp được.
+ bao gồm các lớp định nghĩa các phần hợp lệ, bao gồm các interface để ráp các phần với nhau cho ra kết quả cuối củng.
Builder: khi nào sử dụng và dùng ở đâu
Mẫu thiết kế Builder là một mẫu thiết kế tạo lập cho phép client xây
dựng một đối tượng phức tạp bằng cách chỉ cần định nghĩa kiểu và nội
dung. Chi tiết phần dựng được ẩn đi hoàn toàn bên phía client. Động cơ
phổ biến nhất cho việc sử dụng Builder là đơn giản hóa phần code của
client trong việc tạo ra các đối tượng phức tạp. Client vẫn có thể điều
khiển các bước được thực hiện bởi Builder mà không cần biết công việc
thực sự được thực hiện như thế nào. Builder thường đóng gói construction
của các đối tượng Composite (một mẫu thiết kế khác) vì các procedure
liên quan thường lặp đi lặ lại và phức tạp.
Một trường hợp nơi Builder có thể có ích khi xây dựng một bộ tạo
code. Giả sử bạn đang viết một ứng dụng viết các stored procedure cho
các CSDL khác nhau (SQL Server, Oracle, DB2). Đầu ra thực sự thì rất
khác nhau nhưng những bước khác nhau của việc tạo các procedure tách
biệt thực thi các trạng thai CRUD (Create, Read, Update, Delete) là
tương tự nhau.
Builder là một mẫu thiết kế tạo lập tương tự như các mẫu Factory. Tuy
nhiên, Builder cho bạn nhiều sự kiểm soát hơn trong từng bước trong
tiến trình xây dựng có thể được tùy chỉnh; các mẫu Factory tạo ra các
đối tượng trong 1 bước duy nhất.
Demo:
0 comments:
Post a Comment