定義:提供一個接口來創(chuàng)建一系列相關(guān)或依賴對象,而無需指定其具體類。
痛點:當需要創(chuàng)建一組相關(guān)對象,例如操作系統(tǒng)的不同界面組件(按鈕、文本框等)時,抽象工廠模式非常有用。
以下是一個簡單的抽象工廠模式的 Java 示例,假設(shè)你要創(chuàng)建不同類型的按鈕和窗口組件。
首先,定義抽象按鈕類 Button 和抽象窗口類 Window:
// 抽象按鈕類
public abstract class Button {
public abstract void paint();
}
// 抽象窗口類
public abstract class Window {
public abstract void render();
}
然后,創(chuàng)建具體的按鈕類 LinuxButton 和 WindowsButton,以及具體的窗口類 LinuxWindow 和 WindowsWindow:
// 具體的 Linux 按鈕類
public class LinuxButton extends Button {
@Override
public void paint() {
System.out.println("Linux 按鈕");
}
}
// 具體的 Windows 按鈕類
public class WindowsButton extends Button {
@Override
public void paint() {
System.out.println("Windows 按鈕");
}
}
// 具體的 Linux 窗口類
public class LinuxWindow extends Window {
@Override
public void render() {
System.out.println("Linux 窗口");
}
}
// 具體的 Windows 窗口類
public class WindowsWindow extends Window {
@Override
public void render() {
System.out.println("Windows 窗口");
}
}
接下來,定義抽象工廠類 UIFactory,它包含創(chuàng)建按鈕和窗口的抽象方法:
public abstract class UIFactory {
public abstract Button createButton();
public abstract Window createWindow();
}
創(chuàng)建具體的工廠類 LinuxUIFactory 和 WindowsUIFactory,分別用于創(chuàng)建 Linux 風格和 Windows 風格的按鈕和窗口組件:
// 具體的 Linux UI 工廠
public class LinuxUIFactory extends UIFactory {
@Override
public Button createButton() {
return new LinuxButton();
}
@Override
public Window createWindow() {
return new LinuxWindow();
}
}
// 具體的 Windows UI 工廠
public class WindowsUIFactory extends UIFactory {
@Override
public Button createButton() {
return new WindowsButton();
}
@Override
public Window createWindow() {
return new WindowsWindow();
}
}
最后,你可以使用抽象工廠模式來創(chuàng)建不同風格的按鈕和窗口組件:文章來源:http://www.zghlxwxcb.cn/news/detail-704879.html
public class Main {
public static void main(String[] args) {
// 創(chuàng)建 Linux 風格的 UI 組件
UIFactory linuxFactory = new LinuxUIFactory();
Button linuxButton = linuxFactory.createButton();
Window linuxWindow = linuxFactory.createWindow();
linuxButton.paint(); // 輸出:Linux 按鈕
linuxWindow.render(); // 輸出:Linux 窗口
// 創(chuàng)建 Windows 風格的 UI 組件
UIFactory windowsFactory = new WindowsUIFactory();
Button windowsButton = windowsFactory.createButton();
Window windowsWindow = windowsFactory.createWindow();
windowsButton.paint(); // 輸出:Windows 按鈕
windowsWindow.render(); // 輸出:Windows 窗口
}
}
這個示例演示了抽象工廠模式的用法,根據(jù)不同的工廠對象創(chuàng)建了不同風格的按鈕和窗口組件,而不需要關(guān)心它們的具體實現(xiàn)類。這種方式有助于創(chuàng)建一組相關(guān)或依賴的對象,同時保持代碼的靈活性和可維護性。文章來源地址http://www.zghlxwxcb.cn/news/detail-704879.html
到了這里,關(guān)于[設(shè)計模式] 抽象工廠模式簡易案例的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!