首頁 Java java教程 解析Java工廠模式的三個實際應用案例

解析Java工廠模式的三個實際應用案例

Feb 25, 2024 pm 07:39 PM
iphone 解析 實踐案例 簡單工廠模式 java工廠模式

解析Java工廠模式的三個實際應用案例

Java工廠模式的三種實作案例解析

工廠模式是一種常用的設計模式,它可以將物件的建立與使用相分離,使得程式的可擴展性更好。在Java中,工廠模式有三種常見的實務案例:簡單工廠模式、工廠方法模式和抽象工廠模式。本文將分別對這三種實踐案例進行詳細解析,並提供具體的程式碼範例。

  1. 簡單工廠模式

簡單工廠模式是最基礎的工廠模式,它透過一個工廠類別來建立物件。在簡單工廠模式中,客戶端只需要與工廠類別進行交互,而不需要直接與特定的產品類別互動。

下面以建立圖形物件為例,展示簡單工廠模式的實踐:

// 建立圖形介面
public interface Shape {

void draw();
登入後複製

}

// 建立特定的圖形類別
public class Circle implements Shape {

@Override
public void draw() {
    System.out.println("画一个圆形");
}
登入後複製

}

public class Rectangle implements Shape {

@Override
public void draw() {
    System.out.println("画一个矩形");
}
登入後複製

}

// 建立工廠類別
public class ShapeFactory {

public static Shape createShape(String type) {
    switch (type) {
        case "circle":
            return new Circle();
        case "rectangle":
            return new Rectangle();
        default:
            throw new IllegalArgumentException("不支持的图形类型");
    }
}
登入後複製

}

// 用戶端使用範例
public class Client {

public static void main(String[] args) {
    Shape circle = ShapeFactory.createShape("circle");
    circle.draw();

    Shape rectangle = ShapeFactory.createShape("rectangle");
    rectangle.draw();
}
登入後複製

}

在上述程式碼中,透過ShapeFactory工廠類別的createShape方法來建立具體的圖形物件。客戶端只需要呼叫該方法並傳入對應的參數,即可取得對應的圖形物件並進行後續操作。

  1. 工廠方法模式

工廠方法模式是一種稍微複雜的工廠模式,在工廠方法模式中,每個特定的產品類別都對應一個工廠類。客戶端透過與對應的工廠類別交互,來創建具體的產品物件。

下面以建立汽車物件為例,展示工廠方法模式的實踐:

// 建立汽車介面
public interface Car {

void drive();
登入後複製

}

// 建立具體的汽車類別
public class BenzCar implements Car {

@Override
public void drive() {
    System.out.println("开奔驰车");
}
登入後複製

}

public class BmwCar implements Car {

@Override
public void drive() {
    System.out.println("开宝马车");
}
登入後複製

}

#// 建立工廠介面
public interface CarFactory {

Car createCar();
登入後複製

}

// 建立特定的工廠類別
public class BenzCarFactory implements CarFactory {

@Override
public Car createCar() {
    return new BenzCar();
}
登入後複製

}

public class BmwCarFactory implements CarFactory {

@Override
public Car createCar() {
    return new BmwCar();
}
登入後複製

}

// 用戶端使用範例
public class Client {

public static void main(String[] args) {
    CarFactory benzFactory = new BenzCarFactory();
    Car benzCar = benzFactory.createCar();
    benzCar.drive();

    CarFactory bmwFactory = new BmwCarFactory();
    Car bmwCar = bmwFactory.createCar();
    bmwCar.drive();
}
登入後複製

}

在上述程式碼中,透過CarFactory工廠介面及其對應的特定工廠類別來建立具體的汽車物件。客戶端只需要與對應的工廠類別進行交互,即可取得對應的汽車物件並進行後續操作。

  1. 抽象工廠模式

抽象工廠模式是最複雜的工廠模式,在抽象工廠模式中,每個特定的工廠類別都可以創建多個不同類型的產品對象。客戶端透過與工廠類別交互,來創建一系列相關的產品物件。

下面以建立手機物件為例,展示抽象工廠模式的實務:

// 建立手機介面
public interface Phone {

void call();
登入後複製

}

#// 創建具體的手機類別
public class ApplePhone implements Phone {

@Override
public void call() {
    System.out.println("使用苹果手机打电话");
}
登入後複製

}

public class HuaweiPhone implements Phone {

@Override
public void call() {
    System.out.println("使用华为手机打电话");
}
登入後複製

}

// 建立工廠介面
public interface PhoneFactory {

Phone createPhone();
登入後複製

}

// 建立特定的工廠類別
public class ApplePhoneFactory implements PhoneFactory {

@Override
public Phone createPhone() {
    return new ApplePhone();
}
登入後複製

}

public class HuaweiPhoneFactory implements PhoneFactory {

@Override
public Phone createPhone() {
    return new HuaweiPhone();
}
登入後複製

}

// 用戶端使用範例
public class Client {

public static void main(String[] args) {
    PhoneFactory appleFactory = new ApplePhoneFactory();
    Phone applePhone = appleFactory.createPhone();
    applePhone.call();

    PhoneFactory huaweiFactory = new HuaweiPhoneFactory();
    Phone huaweiPhone = huaweiFactory.createPhone();
    huaweiPhone.call();
}
登入後複製

}

在上述程式碼中,透過PhoneFactory工廠介面及其對應的具體工廠類別來創建具體的手機物件。客戶端只需要與對應的工廠類別進行交互,即可取得對應的手機物件並進行後續操作。

總結:

上述分別介紹了工廠模式的三種實踐案例:簡單工廠模式、工廠方法模式和抽象工廠模式。這三種模式都能夠有效地實現物件的創建和使用的分離,提高程式的可擴展性。在實際的開發中,可以根據特定的需求選擇合適的工廠模式來使用。

以上是解析Java工廠模式的三個實際應用案例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

iPhone 16 Pro 和 iPhone 16 Pro Max 正式發布,配備新相機、A18 Pro SoC 和更大的螢幕 iPhone 16 Pro 和 iPhone 16 Pro Max 正式發布,配備新相機、A18 Pro SoC 和更大的螢幕 Sep 10, 2024 am 06:50 AM

蘋果終於揭開了其新款高階 iPhone 機型的面紗。與上一代產品相比,iPhone 16 Pro 和 iPhone 16 Pro Max 現在配備了更大的螢幕(Pro 為 6.3 英寸,Pro Max 為 6.9 英寸)。他們獲得了增強版 Apple A1

iOS 18 RC 中發現 iPhone 零件啟動鎖——可能是蘋果對以用戶保護為幌子銷售維修權的最新打擊 iOS 18 RC 中發現 iPhone 零件啟動鎖——可能是蘋果對以用戶保護為幌子銷售維修權的最新打擊 Sep 14, 2024 am 06:29 AM

今年早些時候,蘋果宣布將把啟動鎖定功能擴展到 iPhone 組件。這有效地將各個 iPhone 組件(例如電池、顯示器、FaceID 組件和相機硬體)連結到 iCloud 帳戶,

iPhone零件啟動鎖可能是蘋果對以用戶保護為幌子銷售維修權的最新打擊 iPhone零件啟動鎖可能是蘋果對以用戶保護為幌子銷售維修權的最新打擊 Sep 13, 2024 pm 06:17 PM

今年早些時候,蘋果宣布將把啟動鎖定功能擴展到 iPhone 組件。這有效地將各個 iPhone 組件(例如電池、顯示器、FaceID 組件和相機硬體)連結到 iCloud 帳戶,

多名 iPhone 16 Pro 使用者報告觸控螢幕凍結問題,可能與防手掌誤觸敏感度有關 多名 iPhone 16 Pro 使用者報告觸控螢幕凍結問題,可能與防手掌誤觸敏感度有關 Sep 23, 2024 pm 06:18 PM

如果您已經拿到了 Apple iPhone 16 系列的裝置(更具體地說是 16 Pro/Pro Max),那麼您最近很可能遇到某種觸控螢幕問題。一線希望是你並不孤單——報告

Gate.io交易平台官方App下載安裝地址 Gate.io交易平台官方App下載安裝地址 Feb 13, 2025 pm 07:33 PM

本文詳細介紹了在 Gate.io 官網註冊並下載最新 App 的步驟。首先介紹了註冊流程,包括填寫註冊信息、驗證郵箱/手機號碼,以及完成註冊。其次講解了下載 iOS 設備和 Android 設備上 Gate.io App 的方法。最後強調了安全提示,如驗證官網真實性、啟用兩步驗證以及警惕釣魚風險,以確保用戶賬戶和資產安全。

在使用PHP調用支付寶EasySDK時,如何解決'Undefined array key 'sign'”報錯問題? 在使用PHP調用支付寶EasySDK時,如何解決'Undefined array key 'sign'”報錯問題? Mar 31, 2025 pm 11:51 PM

問題介紹在使用PHP調用支付寶EasySDK時,按照官方提供的代碼填入參數後,運行過程中遇到報錯信息“Undefined...

Beats 為其產品陣容增添手機殼:推出適用於 iPhone 16 系列的 MagSafe 手機殼 Beats 為其產品陣容增添手機殼:推出適用於 iPhone 16 系列的 MagSafe 手機殼 Sep 11, 2024 pm 03:33 PM

Beats 以推出藍牙揚聲器和耳機等音訊產品而聞名,但令人驚訝的是,這家蘋果旗下公司從 iPhone 16 系列開始涉足手機殼製造領域。節拍 iPhone

安幣app官方下載v2.96.2最新版安裝  安幣官方安卓版 安幣app官方下載v2.96.2最新版安裝 安幣官方安卓版 Mar 04, 2025 pm 01:06 PM

幣安App官方安裝步驟:安卓需訪官網找下載鏈接,選安卓版下載安裝;iOS在App Store搜“Binance”下載。均要從官方渠道,留意協議。

See all articles