Factory Method Pattern - Java

Factory Method là gì?

Đây là một trong những design pattern được sử dụng nhiều nhất (mình tin là vậy :D). Nó cho phép bạn khởi tạo đối tượng một cách linh hoạt và dễ dàng mở rộng chương trình. Hình dung chung thì factory method cung cấp 1 interface cho việc khởi tạo object của class cha nhưng cho phép class con thay đổi loại object sẽ được khởi tạo.

Factory Method dùng cho những trường hợp nào?

Chúng ta thường dùng factory method cho việc khởi tạo object mà object được khởi tạo bị phụ thuộc vào yếu tố thứ 3. Yếu tố thứ 3 ở đây có thể là: loại hệ điều hành, loại cơ sử dữ liệu, v.v...
Ví dụ cụ thể trong trường hợp bạn muốn tạo 1 connection tới database để truy xuất dữ liệu. Và vấn đề của bạn là bạn có tới 3 loại database: MySql, Oracle và MSSQL. Khi này bạn cần dùng đến factory pattern để khởi tạo connection một cách linh hoạt nhất.

Cấu trúc của Factory Method

- Chúng ta sẽ có 1 class Creator với 1 abstract method createProduct() đảm nhiệm việc trả về một object kiểu Product (Interface) - Trong class con ConcreteCreatorA và ConcreteCreatorB sẽ override lại method createProduct() ở lớp cha để trả về chính xác class concrete product. - Interface Product sẽ có 2 implement class tương ứng là ConcreteProductAConcreteProductB => chính là 2 class sẽ được khởi tạo trong ConcreteCreatorA và ConcreteCreatorB ở trên.

Ví dụ Factory Method trong Java

Ví dụ minh họa ở đây sẽ là việc khởi tạo database connection như mình đã nói ở trên.

Source code bài viết: https://github.com/luubi/design-patterns/tree/master/src/main/java/com/vlt/factory

Nguồn: Bài viết liên quan:

Bài viết liên quan


EmoticonEmoticon