Design Pattern | Định Nghĩa | Mục Đích Sử Dụng | Cách Sử Dụng |
---|---|---|---|
Factory Method | Cung cấp interface để tạo đối tượng, cho phép lớp con quyết định loại đối tượng cụ thể sẽ được tạo ra. | - Độc lập với lớp con cụ thể. - Mở rộng dễ dàng bằng cách thêm lớp con mới. | Định nghĩa giao diện hoặc lớp trừu tượng chứa Factory Method, sau đó triển khai Factory Method trong các lớp con. |
Abstract Factory | Cung cấp interface để tạo các "families(họ)" đối tượng liên quan mà không cần biết lớp cụ thể nào. | - Duy trì tính nhất quán giữa các đối tượng liên quan. | Định nghĩa giao diện hoặc lớp trừu tượng cho Abstract Factory, sau đó triển khai interface này trong các lớp con. |
Builder | Cho phép xây dựng đối tượng phức tạp step by step. | - Xây dựng đối tượng với nhiều thuộc tính hoặc tùy chọn khác nhau. | Tạo một lớp Builder cho đối tượng cần xây dựng, định nghĩa phương thức để thiết lập thuộc tính hoặc tùy chọn, và triển khai phương thức xây dựng đối tượng. |
Prototype | Cho phép tạo đối tượng mới bằng cách sao chép đối tượng đã tồn tại. | - Tạo nhiều bản sao của một đối tượng mà không cần tạo lại từ đầu. | Định nghĩa phương thức sao chép đối tượng hoặc triển khai interface Cloneable (nếu có). |
Singleton | Đảm bảo rằng chỉ có một đối tượng duy nhất của một lớp và cung cấp điểm truy cập toàn cục đến nó. | - Đảm bảo rằng chỉ có một phiên bản duy nhất của một lớp. - Chia sẻ đối tượng trong toàn bộ ứng dụng. | Triển khai lớp Singleton bằng cách đảm bảo rằng constructor là private và cung cấp một phương thức tĩnh để truy cập đối tượng Singleton. |