- Ba mẫu này khác nhau như thế nào?
Factory: Tạo các đối tượng mà không để lộ logic khởi tạo cho máy khách.
Phương thức Factory: Xác định một giao diện để tạo một đối tượng, nhưng hãy để các lớp con quyết định lớp nào sẽ khởi tạo. Phương thức Factory cho phép khởi tạo lớp trì hoãn cho các lớp con
Nhà máy trừu tượng: Cung cấp giao diện để tạo các họ của các đối tượng liên quan hoặc phụ thuộc mà không chỉ định các lớp cụ thể của chúng.
Mẫu AbstractFactory sử dụng thành phần để ủy thác trách nhiệm tạo đối tượng cho lớp khác trong khi mẫu thiết kế phương thức Factory sử dụng tính kế thừa và dựa vào lớp dẫn xuất hoặc lớp con để tạo đối tượng
- Khi nào nên sử dụng?
Nhà máy: Khách hàng chỉ cần một lớp và không quan tâm đến việc triển khai cụ thể.
Phương thức xuất xưởng: Khách hàng không biết những lớp cụ thể nào sẽ được yêu cầu tạo trong thời gian chạy, nhưng chỉ muốn có một lớp sẽ thực hiện công việc.
AbstactFactory: Khi hệ thống của bạn phải tạo nhiều họ sản phẩm hoặc bạn muốn cung cấp một thư viện sản phẩm mà không để lộ chi tiết triển khai.
Các lớp Factory trừu tượng thường được thực hiện với Phương thức Factory. Phương thức xuất xưởng thường được gọi trong Phương thức mẫu.
- Và nếu có thể, bất kỳ ví dụ java liên quan đến các mẫu này?
Nhà máy và Nhà máyMethod
Ý định:
Xác định một giao diện để tạo một đối tượng, nhưng hãy để các lớp con quyết định lớp nào sẽ khởi tạo. Phương thức Factory cho phép một lớp trì hoãn khởi tạo đến các lớp con.
Sơ đồ UML :
Sản phẩm: Nó định nghĩa một giao diện của các đối tượng mà phương thức Factory tạo ra.
ConcreteSản phẩm : Triển khai Giao diện sản phẩm
Người tạo: Khai báo phương thức Factory
ConcreateCreator: Thực hiện phương thức Factory để trả về một thể hiện của Concrete sản phẩm
Báo cáo sự cố: Tạo Factory of Games bằng cách sử dụng Factory Methods, định nghĩa giao diện trò chơi.
Đoạn mã:
Mô hình nhà máy. Khi nào nên sử dụng phương pháp nhà máy?
So sánh với các mẫu sáng tạo khác:
Thiết kế bắt đầu sử dụng Phương thức nhà máy (ít phức tạp hơn, tùy biến hơn, các lớp con tăng sinh) và phát triển theo hướng Tóm tắt Factory, Prototype hoặc Builder (linh hoạt hơn, phức tạp hơn) khi nhà thiết kế phát hiện ra nơi nào cần linh hoạt hơn
Các lớp Factory trừu tượng thường được triển khai với Phương thức Factory , nhưng chúng cũng có thể được thực hiện bằng Prototype
Tài liệu tham khảo để đọc thêm: Mẫu thiết kế trang trí