国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[設計模式Java實現(xiàn)附plantuml源碼~創(chuàng)建型] 集中式工廠的實現(xiàn)~簡單工廠模式

這篇具有很好參考價值的文章主要介紹了[設計模式Java實現(xiàn)附plantuml源碼~創(chuàng)建型] 集中式工廠的實現(xiàn)~簡單工廠模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言:
為什么之前寫過Golang 版的設計模式,還在重新寫Java 版?
答:因為對于我而言,當然也希望對正在學習的大伙有幫助。Java作為一門純面向對象的語言,更適合用于學習設計模式。
為什么類圖要附上uml
因為很多人學習有做筆記的習慣,如果單純的只是放一張圖片,那么學習者也只能復制一張圖片,可復用性較低,附上uml,方便有新理解時,快速出新圖。
————————————————

??[設計模式Java實現(xiàn)附plantuml源碼]專鏈

  1. 確保對象的唯一性~單例模式

簡單工廠模式(Simple Factory Pattern):定義一個工廠類,它可以根據(jù)參數(shù)的不同返回不同類的實例,被創(chuàng)建的實例通常都具有共同的父類。因為在簡單工廠模式中用于創(chuàng)建實例的方法是靜態(tài)(static)方法,因此簡單工廠模式又被稱為靜態(tài)工廠方法(Static Factory Method)模式,它屬于類創(chuàng)建型模式。

簡單工廠模式的要點在于:當你需要什么,只需要傳入一個正確的參數(shù),就可以獲取你所需要的對象,而無須知道其創(chuàng)建細節(jié)。

[設計模式Java實現(xiàn)附plantuml源碼~創(chuàng)建型] 集中式工廠的實現(xiàn)~簡單工廠模式,設計模式,設計模式,java,簡單工廠模式

@startuml


class Factory {
  + {static} factoryMethod(): Product
}
abstract class Product {
  + {abstract} operation(): void
}
class ConcreteProductA extends Product {
  + operation(): void
}
class ConcreteProductB extends Product {
  + operation(): void
}

Factory -up-> ConcreteProductA : creates >
Factory -up-> ConcreteProductB : creates >
@enduml

代碼實現(xiàn)

package create;


// 抽象產(chǎn)品角色
abstract class Product {
    abstract void  operation();
}

// 具體產(chǎn)品角色A
class ConcreteProductA extends Product {
    @Override
    public void operation() {
        System.out.println("ConcreteProductA operation");
    }
}

// 具體產(chǎn)品角色B
class ConcreteProductB extends Product {
    @Override
    public void operation() {
        System.out.println("ConcreteProductB operation");
    }
}

// 工廠類
class Factory {
    public static Product factoryMethod(String productType) {
        Product product = null;
        if (productType.equals("A")) {
            product = new ConcreteProductA();
        } else if (productType.equals("B")) {
            product = new ConcreteProductB();
        }
        return product;
    }
}

// 客戶端代碼

public class SimpleFactory {
    public static void main(String[] args) {
        // 創(chuàng)建具體產(chǎn)品A
        Product productA = Factory.factoryMethod("A");
        productA.operation();

        // 創(chuàng)建具體產(chǎn)品B
        Product productB = Factory.factoryMethod("B");
        productB.operation();
    }
}

簡單工廠模式總結

簡單工廠模式提供了專門的工廠類用于創(chuàng)建對象,將對象的創(chuàng)建和對象的使用分離開,它作為一種最簡單的工廠模式在軟件開發(fā)中得到了較為廣泛的應用。

主要優(yōu)點簡單工廠模式的主要優(yōu)點如下:

(1)工廠類包含必要的判斷邏輯,可以決定在什么時候創(chuàng)建哪一個產(chǎn)品類的實例??蛻舳丝梢悦獬苯觿?chuàng)建產(chǎn)品對象的職責,而僅僅“消費”產(chǎn)品。
簡單工廠模式實現(xiàn)了對象創(chuàng)建和使用的分離。
(2)客戶端無須知道所創(chuàng)建的具體產(chǎn)品類的類名,只需要知道具體產(chǎn)品類所對應的參數(shù)即可。
對于一些復雜的類名,通過簡單工廠模式可以在一定程度減少使用者的記憶量。
(3)通過引入配置文件,可以在不修改任何客戶端代碼的情況下更換和增加新的具體產(chǎn)品類,在一定程度上提高了系統(tǒng)的靈活性。

簡單工廠模式的主要缺點如下:

(1)由于工廠類集中了所有產(chǎn)品的創(chuàng)建邏輯,職責過重,一旦不能正常工作,整個系統(tǒng)都要受到影響。
(2)使用簡單工廠模式勢必會增加系統(tǒng)中類的個數(shù)(引入了新的工廠類),增加了系統(tǒng)的復雜度和理解難度。
(3)系統(tǒng)擴展困難。一旦添加新產(chǎn)品就不得不修改工廠邏輯,在產(chǎn)品類型較多時,有可能造成工廠邏輯過于復雜,不利于系統(tǒng)的擴展和維護。
(4)簡單工廠模式由于使用了靜態(tài)工廠方法,造成工廠角色無法形成基于繼承的等級結構。文章來源地址http://www.zghlxwxcb.cn/news/detail-803959.html

到了這里,關于[設計模式Java實現(xiàn)附plantuml源碼~創(chuàng)建型] 集中式工廠的實現(xiàn)~簡單工廠模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • java 設計模式--創(chuàng)建者模式

    java 設計模式--創(chuàng)建者模式

    參考:Java常見設計模式總結 概念理解一 :將復雜對象的創(chuàng)建過程分解在不同的方法中,不同的創(chuàng)建過程組裝成不同對象。對象的創(chuàng)建與產(chǎn)品本身分離開,使得對象的創(chuàng)建過程更加清晰。例如:旅游套餐售賣場景。 一個套餐大概會由機票、車票、酒店、景點門票組成。 套餐

    2024年02月10日
    瀏覽(25)
  • 【Java 設計模式】創(chuàng)建型之抽象工廠模式

    【Java 設計模式】創(chuàng)建型之抽象工廠模式

    在軟件開發(fā)中,抽象工廠模式是一種常見的創(chuàng)建型設計模式, 它提供了一種創(chuàng)建一系列相關或相互依賴對象的接口,而無需指定它們具體的類 。抽象工廠模式的核心思想是將一組相關的產(chǎn)品組合成一個工廠,客戶端通過工廠接口創(chuàng)建一系列產(chǎn)品。在本文中,我們將介紹 Jav

    2024年01月17日
    瀏覽(28)
  • 【Java 設計模式】創(chuàng)建型之建造者模式

    【Java 設計模式】創(chuàng)建型之建造者模式

    在軟件開發(fā)中,建造者模式是一種創(chuàng)建型設計模式, 它將一個復雜對象的構建與其表示分離,使得同樣的構建過程可以創(chuàng)建不同的表示 。建造者模式通常包括一個指導者(Director)類和多個建造者(Builder)類,指導者負責組織建造者的構建過程,而建造者負責具體的構建步

    2024年01月21日
    瀏覽(20)
  • 【Java 設計模式】創(chuàng)建型之單例模式

    【Java 設計模式】創(chuàng)建型之單例模式

    在軟件開發(fā)中,單例模式是一種常見的設計模式, 它確保一個類只有一個實例,并提供一個全局訪問點 。單例模式在需要控制某些資源,如數(shù)據(jù)庫連接池、線程池等共享資源的情況下非常有用。在本文中,我們將介紹 Java 設計模式中的單例模式,了解其實現(xiàn)方式、使用場景

    2024年01月18日
    瀏覽(26)
  • 【Java 設計模式】創(chuàng)建型之工廠方法模式

    【Java 設計模式】創(chuàng)建型之工廠方法模式

    在軟件開發(fā)中,工廠方法模式是一種常見的創(chuàng)建型設計模式, 它提供了一種將對象的實例化延遲到子類的方法 。工廠方法模式通過定義一個創(chuàng)建對象的接口,但是讓子類決定實例化哪個類。在本文中,我們將介紹 Java 設計模式中的工廠方法模式,了解其定義、使用場景以及

    2024年01月17日
    瀏覽(26)
  • Java23種設計模式-創(chuàng)建型模式之單例模式

    單例模式 (Singleton Pattern):通過單例模式的方法創(chuàng)建的 類在當前進程中只有一個實例 (根據(jù)需要,也有可能一個線程中屬于單例,如:僅線程上下文內(nèi)使用同一個實例),該類負責 創(chuàng)建自己的對象 ,同時 確保只有單個對象 被創(chuàng)建。 注 : 1、單例類 只能 有 一個實例 。

    2024年04月26日
    瀏覽(27)
  • 24種設計模式之創(chuàng)建者模式-Java版

    24種設計模式之創(chuàng)建者模式-Java版

    軟件設計模式是前輩們代碼設計經(jīng)驗的總結,可以反復使用。設計模式共分為3大類,創(chuàng)建者模式(6種)、結構型模式(7種)、行為型模式(11種),一共24種設計模式,軟件設計一般需要滿足7大基本原則。下面通過5章的學習一起來看看設計模式的魅力吧。 創(chuàng)建型模式(6種):本質上就

    2024年01月22日
    瀏覽(24)
  • 【Design Pattern 23種經(jīng)典設計模式源碼大全】C/Java/Go/JS/Python/TS等不同語言實現(xiàn)

    【Design Pattern 23種經(jīng)典設計模式源碼大全】C/Java/Go/JS/Python/TS等不同語言實現(xiàn)

    經(jīng)典設計模式源碼詳解,用不同語言來實現(xiàn),包括Java/JS/Python/TypeScript/Go等。結合實際場景,充分注釋說明,每一行代碼都經(jīng)過檢驗,確保可靠。 設計模式是一個程序員進階高級的必然選擇,不懂設計模式,就像寫文章不懂得層次,蓋房子沒有結構。只有充分懂得設計之道,

    2023年04月11日
    瀏覽(24)
  • 設計模式 代理模式(靜態(tài)代理 動態(tài)代理) 與 Spring Aop源碼分析 具體是如何創(chuàng)建Aop代理的

    設計模式 代理模式(靜態(tài)代理 動態(tài)代理) 與 Spring Aop源碼分析 具體是如何創(chuàng)建Aop代理的

    代理模式是一種結構型設計模式,它通過創(chuàng)建一個代理對象來控制對真實對象的訪問。這種模式可以用于提供額外的功能操作,或者擴展目標對象的功能。 在代理模式中,代理對象與真實對象實現(xiàn)相同的接口,以便在任何地方都可以使用相同的接口來調(diào)用真實對象的方法。這

    2024年01月20日
    瀏覽(30)
  • 【java設計模式】創(chuàng)建型模式介紹(工廠模式、抽象工廠模式、單例模式、建造者模式、原型模式)

    簡介 本文介紹Java設計模式中創(chuàng)建型模式的五種 一、工廠模式 工廠模式(Factory Pattern)是 Java 中最常用的設計模式之一。這種類型的設計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式。 工廠模式提供了一種將對象的實例化過程封裝在工廠類中的方式。通過使用工

    2024年02月16日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包