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

spring的設計模式----簡單工廠模式

這篇具有很好參考價值的文章主要介紹了spring的設計模式----簡單工廠模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

spring的設計模式----工廠模式

spring中IoC 控制反轉,底層是工廠模式。

  • 工廠模式(Factory Pattern)是 Java 中最常用的設計模式之一。這種類型的設計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式。

  • 工廠模式提供了一種將對象的實例化過程封裝在工廠類中的方式。通過使用工廠模式,可以將對象的創(chuàng)建與使用代碼分離,提供一種統(tǒng)一的接口來創(chuàng)建不同類型的對象。

  • 在工廠模式中,我們在創(chuàng)建對象時不會對客戶端暴露創(chuàng)建邏輯,并且是通過使用一個共同的接口來指向新創(chuàng)建的對象。
    介紹
    意圖:定義一個創(chuàng)建對象的接口,讓其子類自己決定實例化哪一個工廠類,工廠模式使其創(chuàng)建過程延遲到子類進行。

基礎內(nèi)容:

主要解決:主要解決接口選擇的問題。

何時使用:我們明確地計劃不同條件下創(chuàng)建不同實例時。

如何解決:讓其子類實現(xiàn)工廠接口,返回的也是一個抽象的產(chǎn)品。

關鍵代碼:創(chuàng)建過程在其子類執(zhí)行。

應用實例: 1、您需要一輛汽車,可以直接從工廠里面提貨,而不用去管這輛汽車是怎么做出來的,以及這個汽車里面的具體實現(xiàn)。 2、Hibernate 換數(shù)據(jù)庫只需換方言和驅動就可以。

優(yōu)點: 1、一個調(diào)用者想創(chuàng)建一個對象,只要知道其名稱就可以了。 2、擴展性高,如果想增加一個產(chǎn)品,只要擴展一個工廠類就可以。 3、屏蔽產(chǎn)品的具體實現(xiàn),調(diào)用者只關心產(chǎn)品的接口。

**缺點:**每次增加一個產(chǎn)品時,都需要增加一個具體類和對象實現(xiàn)工廠,使得系統(tǒng)中類的個數(shù)成倍增加,在一定程度上增加了系統(tǒng)的復雜度,同時也增加了系統(tǒng)具體類的依賴。這并不是什么好事。

使用場景: 1、日志記錄器:記錄可能記錄到本地硬盤、系統(tǒng)事件、遠程服務器等,用戶可以選擇記錄日志到什么地方。 2、數(shù)據(jù)庫訪問,當用戶不知道最后系統(tǒng)采用哪一類數(shù)據(jù)庫,以及數(shù)據(jù)庫可能有變化時。 3、設計一個連接服務器的框架,需要三個協(xié)議,“POP3”、“IMAP”、“HTTP”,可以把這三個作為產(chǎn)品類,共同實現(xiàn)一個接口。

注意事項:作為一種創(chuàng)建類模式,在任何需要生成復雜對象的地方,都可以使用工廠方法模式。有一點需要注意的地方就是復雜對象適合使用工廠模式,而簡單對象,特別是只需要通過 new 就可以完成創(chuàng)建的對象,無需使用工廠模式。如果使用工廠模式,就需要引入一個工廠類,會增加系統(tǒng)的復雜度。

工廠模式包含以下幾個核心角色:

  • 抽象產(chǎn)品(Abstract Product):定義了產(chǎn)品的共同接口或抽象類。它可以是具體產(chǎn)品類的父類或接口,規(guī)定了產(chǎn)品對象的共同方法。
  • 具體產(chǎn)品(Concrete Product):實現(xiàn)了抽象產(chǎn)品接口,定義了具體產(chǎn)品的特定行為和屬性。
  • 抽象工廠(Abstract Factory):聲明了創(chuàng)建產(chǎn)品的抽象方法,可以是接口或抽象類。它可以有多個方法用于創(chuàng)建不同類型的產(chǎn)品。
  • 具體工廠(Concrete Factory):實現(xiàn)了抽象工廠接口,負責實際創(chuàng)建具體產(chǎn)品的對象。

實現(xiàn)

創(chuàng)建一個 Shape 接口和實現(xiàn) Shape 接口的實體類。下一步是定義工廠類 ShapeFactory

FactoryPatternDemo 類使用 ShapeFactory 來獲取 Shape 對象。它將向 ShapeFactory 傳遞信息(CIRCLE / RECTANGLE / SQUARE),以便獲取它所需對象的類型。

spring的設計模式----簡單工廠模式,spring,設計模式,簡單工廠模式

具體實現(xiàn)步驟:

步驟1

創(chuàng)建一個接口:
public interface Shape{
    void draw();
}

步驟2

創(chuàng)建實現(xiàn)接口的實體類

(1)創(chuàng)建Rectangle.java

public class Rectangle implements Shape{
    @Override
    public void draw(){
        System.out.println("Inside Rectangle::draw() method.");
    }
}

(2)創(chuàng)建Square.java

public class Square implements Shape{
    @Override
    public void draw(){
        System.out.println("Inside Square::draw() method.");
    }
}

(3)創(chuàng)建Circle.java

public class Circle implements Shape{
    @Override
    public void draw(){
        System.out.println("Inside Circle::draw() method.");
    }
}

步驟3

創(chuàng)建一個工廠(ShapeFactory.java),生成基于給定信息的實體類的對象。
public class ShapeFactory{
    //使用getShape方法獲取形狀類型的對象
    public Shape getShape(String shapeType){
        if(shapeType == null){
            return null;    
        }
        if(shapeType.equalsIgnoreCase("CIRCLE")){
            return new Circle();
        } else if(shapeType.equalsIgnoreCase("RECTANGLE")){
            return new Rectangle();
        } else if(shapeType.equalsIgnoreCase("SQUARE")){
            return new Square();
        }
        return null;
    }
}

步驟4

使用該工廠,通過傳遞類型信息來獲取實體類的對象。

創(chuàng)建FactoryPatternDemo.java

public class FactoryPatternDemo{
    
    public static void main(String[] args){
        ShapeFactory shapeFactory = new ShapeFactory();
        
        //獲取Circle的對象,并調(diào)用他的draw方法
        Shape shape1 = shapeFactory.getShape("CIRCLE");

        //調(diào)用Circle的draw方法
        shape1.draw();

        //獲取Rectangle的對象,并調(diào)用它的draw方法
        Shape shape2 = shapeFactory.getShape("RECTANGLE");

        //調(diào)用Rectangle的draw方法
        shape2.draw();

        //獲取Square的對象,并調(diào)用它的draw方法
        Shape shape3 = shapeFactory.getShape("SQUARE");

        //調(diào)用Square的draw方法
        shape3.draw();
    }
}

步驟5

輸出的結果:文章來源地址http://www.zghlxwxcb.cn/news/detail-580266.html

Inside Circle::draw() method.
Inside Rectangle::draw() method.
Inside Square::draw() method.

到了這里,關于spring的設計模式----簡單工廠模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關文章

  • 設計模式-簡單工廠模式

    簡單工廠模式又稱為靜態(tài)工廠模式,其實就是根據(jù)傳入?yún)?shù)創(chuàng)建對應具體類的實例并返回實例對象,這些類通常繼承至同一個父類,該模式專門定義了一個類來負責創(chuàng)建其他類的實例。 ?這就是工廠類,提供一個方法創(chuàng)建具體類的實例 優(yōu)點:將對象的創(chuàng)建于使用分離,創(chuàng)建完

    2024年02月12日
    瀏覽(22)
  • 設計模式(簡單工廠模式)

    從建筑設計領域引入到計算機科學中 設計模式一共有23種 代碼設計經(jīng)驗的總結,穩(wěn)定,拓展性更強。一系列編程思想 作用:代碼更容易被他人理解、保證代碼可靠性、程序的重用性。 詳細介紹:[https://www.runoob.com/design-pattern/design-pattern-tutorial.html]: 學習簡單工廠模式的目的:

    2024年02月13日
    瀏覽(18)
  • 聊聊設計模式--簡單工廠模式

    聊聊設計模式--簡單工廠模式

    ? 前面也學了很多各種微服務架構的組件,包括后續(xù)的服務部署、代碼管理、Docker等技術,那么作為后端人員,最重要的任務還是代碼編寫能力,如何讓你的代碼寫的漂亮、易擴展,讓別人一看賞心悅目,那么設計模式就是很重的了。那么本本篇文章就來聊聊一個簡單的工廠

    2024年02月07日
    瀏覽(24)
  • JavaScript設計模式(二)——簡單工廠模式、抽象工廠模式、建造者模式

    JavaScript設計模式(二)——簡單工廠模式、抽象工廠模式、建造者模式

    個人簡介 ?? 個人主頁: 前端雜貨鋪 ???♂? 學習方向: 主攻前端方向,正逐漸往全干發(fā)展 ?? 個人狀態(tài): 研發(fā)工程師,現(xiàn)效力于中國工業(yè)軟件事業(yè) ?? 人生格言: 積跬步至千里,積小流成江海 ?? 推薦學習:??前端面試寶典 ??Vue2 ??Vue3 ??Vue2/3項目實戰(zhàn) ??Node.js??

    2024年02月10日
    瀏覽(23)
  • [設計模式]創(chuàng)建型模式-簡單工廠模式

    簡單工廠模式又稱為靜態(tài)工廠模式,屬于創(chuàng)建型模式,但不屬于GOF23設計模式。由一個工廠對象決定創(chuàng)建出哪一種產(chǎn)品類的實例。簡單工廠模式的實質(zhì)是由一個工廠類根據(jù)傳入的參數(shù),動態(tài)決定應該創(chuàng)建哪一個產(chǎn)品類。 簡單工廠適用場景:工廠類負責創(chuàng)建的對象比較少;客戶

    2024年02月20日
    瀏覽(19)
  • [設計模式] 簡單工廠模式簡易案例

    工廠模式是一種創(chuàng)建型設計模式,用于根據(jù)不同條件或參數(shù)創(chuàng)建不同類型的對象。 解決的痛點:當一個類不知道它必須創(chuàng)建哪個對象時,工廠模式可以用來創(chuàng)建特定類型的對象。 以下是一個簡單的工廠模式的 Java 示例,假設你要創(chuàng)建不同類型的形狀對象。 首先,定義一個抽

    2024年02月09日
    瀏覽(29)
  • 設計模式之~工廠系列(簡單工廠、工廠方法、抽象工廠)

    設計模式之~工廠系列(簡單工廠、工廠方法、抽象工廠)

    目錄 簡單工廠模式 工廠方法模式 簡單工廠 VS 工廠方法 抽象工廠模式: 拓展: 利用簡單工廠模式優(yōu)化抽象工廠?? 利用反射+抽象工廠? ?進行優(yōu)化 反射+配置文件+抽象工廠進行優(yōu)化 優(yōu)點:簡單工廠模式的最大優(yōu)點在于工廠類包含了必要的邏輯判斷,根據(jù)客戶端的選擇條件動

    2024年02月07日
    瀏覽(24)
  • 設計模式:簡單工廠、工廠方法、抽象工廠的區(qū)別

    描述: 簡單工廠模式并不是嚴格意義上的設計模式,而更像是一種編程習慣或者說是一種創(chuàng)建對象的簡單方式。它使用一個工廠類來創(chuàng)建對象,這個工廠類包含一個方法,根據(jù)輸入的參數(shù)或條件來創(chuàng)建相應的對象實例。 舉例: 描述: 工廠方法模式是一種創(chuàng)建型模式,它定義

    2024年01月21日
    瀏覽(22)
  • 探索設計模式的魅力:簡單工廠模式

    探索設計模式的魅力:簡單工廠模式

    簡單工廠模式(Simple Factory Pattern)是一種創(chuàng)建型設計模式,其主要目的是用于創(chuàng)建對象的實例。這種模式通過封裝創(chuàng)建對象的代碼來降低客戶代碼與具體類之間的耦合度。簡單工廠不是GoF(四人幫)設計模式之一,但它是一個常用的編程慣用法。 在簡單工廠模式中,創(chuàng)建對

    2024年01月17日
    瀏覽(33)
  • 設計模式01———簡單工廠模式 c#

    設計模式01———簡單工廠模式 c#

    首先我們打開一個項目 在這個初始界面我們需要做一些準備工作 建基礎通用包 創(chuàng)建一個Plane 重置后 縮放100倍 加一個顏色 任務:使用【簡單工廠模式】生成四種不同怪物 【按不同路徑移動】 首先資源商店下載四個怪物模型 接下來我們選取四個怪物作為預制體并分別起名為

    2024年02月07日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包