Header Ads

[OOP] Factory Pattern

Mẫu Abstract Factory là một mẫu thiết kế (design pattern) trong lập trình hướng đối tượng. Nó cho phép bạn tạo ra các đối tượng liên quan đến nhau mà không cần chỉ định rõ ràng lớp cụ thể của chúng.

Đây là một ví dụ về cách sử dụng mẫu Abstract Factory trong Java để tạo ra các nút đồ họa trên giao diện người dùng (GUI):

Đầu tiên, hãy định nghĩa một interface cho các nút đồ họa:

java
public interface Button { void paint(); }

Tiếp theo, hãy định nghĩa một abstract factory để tạo ra các nút đồ họa:

java
public interface GUIFactory { Button createButton(); }

Sau đó, hãy định nghĩa hai factory cụ thể để tạo ra các nút đồ họa, một cho giao diện người dùng Windows và một cho giao diện người dùng Mac:

java
public class WindowsGUIFactory implements GUIFactory { public Button createButton() { return new WindowsButton(); } } public class MacGUIFactory implements GUIFactory { public Button createButton() { return new MacButton(); } }

Sau đó, hãy định nghĩa các lớp nút cụ thể:

java
public class WindowsButton implements Button { public void paint() { System.out.println("Windows Button"); } } public class MacButton implements Button { public void paint() { System.out.println("Mac Button"); } }

Cuối cùng, hãy sử dụng các factory để tạo ra các nút đồ họa tương ứng với hệ điều hành:

java
public class Application { public Application(GUIFactory factory) { Button button = factory.createButton(); button.paint(); } public static void main(String[] args) { new Application(new WindowsGUIFactory()); new Application(new MacGUIFactory()); } }

Trong đoạn mã trên, Application tạo ra các đối tượng Button thông qua các GUIFactory tương ứng với hệ điều hành, và gọi phương thức paint() trên mỗi đối tượng để hiển thị nút đồ họa tương ứng.

Mẫu Abstract Factory được sử dụng khi bạn cần tạo ra các đối tượng liên quan đến nhau hoặc có liên quan đến một chủ đề cụ thể. Nó cho phép bạn tạo ra các đối tượng mà không cần biết lớp cụ thể của chúng và đảm bảo tính tương thích giữa các đối tượng được tạo ra. Mẫu này thường được sử dụng trong các ứng dụng đa nền tảng, trong đó các đối tượng phải được

Nguồn: chatGPT 

Không có nhận xét nào

Được tạo bởi Blogger.