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

設(shè)計(jì)模式-簡單工廠模式(靜態(tài)工廠模式)java實(shí)現(xiàn)

這篇具有很好參考價值的文章主要介紹了設(shè)計(jì)模式-簡單工廠模式(靜態(tài)工廠模式)java實(shí)現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

?介紹

簡單工廠模式根據(jù)所提供的參數(shù)數(shù)據(jù)返回幾個可能類中的一個類的實(shí)例。通常返回的類都有一個公共的父類和公共的方法。

設(shè)計(jì)模式-簡單工廠模式(靜態(tài)工廠模式)java實(shí)現(xiàn),設(shè)計(jì)模式,設(shè)計(jì)模式,簡單工廠模式

?

意圖

提供一個類,負(fù)責(zé)根據(jù)一定的條件創(chuàng)建某一具體類的實(shí)例。同時使用工廠模式也是為了隱藏創(chuàng)建對象的過程

角色及其職責(zé)

(1)工廠(Creator)角色:是簡單工廠模式的核心,負(fù)責(zé)實(shí)現(xiàn)創(chuàng)建所有實(shí)例的內(nèi)部邏輯。工廠類可以被外界直接調(diào)用,創(chuàng)建所需的產(chǎn)品對象。

(2) 抽象(Produet)角色:是簡單工廠模式所創(chuàng)建的所有對象的父類,負(fù)責(zé)描述所有實(shí)例所共有的公共接口。

(3) 具體產(chǎn)品(Concrete Product)角色:是簡單工廠模式的創(chuàng)建目標(biāo),所有創(chuàng)建的對象

都是充當(dāng)這個角色的某個具體類的實(shí)例。一般來講,它是抽象產(chǎn)品類的子類,實(shí)現(xiàn)了抽象產(chǎn)

品類中定義的所有接口方法。

?

設(shè)計(jì)模式-簡單工廠模式(靜態(tài)工廠模式)java實(shí)現(xiàn),設(shè)計(jì)模式,設(shè)計(jì)模式,簡單工廠模式

?在工廠角色中可以通過參數(shù)來判斷創(chuàng)建哪種具體的產(chǎn)品子類對象,這個參數(shù)可以通過配置文件獲取,也可以作為方法參數(shù)傳入。

例子

下面我來實(shí)現(xiàn)一下

一個產(chǎn)品接口,兩個產(chǎn)品類Chair,Desk,一個工廠類,通過參數(shù)來決定創(chuàng)建哪個具體產(chǎn)品

產(chǎn)品接口

public interface MyProduct {
    //返回產(chǎn)品的具體名稱
    String getProductName();
}

具體產(chǎn)品

public class Chair implements MyProduct{
    @Override
    public String getProductName() {
        return "椅子";
    }
}
public class Desk implements MyProduct{
    @Override
    public String getProductName() {
        return "桌子";
    }
}

工廠類

/**
 * @Classname MyProductFactory
 * @author: 我心
 * @Description: 產(chǎn)品工廠類
 * @Date 2022/11/26 21:51
 * @Created by Lenovo
 */
public class MyProductFactory {
    public MyProduct getProduct(String code){
        MyProduct product=null;//要返回的產(chǎn)品對象
        //如果參數(shù)是c,則創(chuàng)建Chair對象
        if (code.equals("c")){
            product=new Chair();
        }
        //如果參數(shù)是d,則創(chuàng)建Desk對象
        else if( code.equals("d")){
            product=new Desk();
        }
        return product;
    }
}

運(yùn)行代碼

public class Main {
    public static void main(String[] args) {
        //這時候我們就不需要關(guān)注具體創(chuàng)建的是什么對象,只需要知道它是所需的產(chǎn)品即可,隱藏了創(chuàng)建對象的細(xì)節(jié)
        MyProductFactory productFactory=new MyProductFactory();
        //然后我們直接調(diào)用產(chǎn)品的公共接口方法使用即可,不管是什么產(chǎn)品,都實(shí)現(xiàn)了這一個接口,我們也不需要關(guān)注接口的細(xì)節(jié)
        MyProduct c = productFactory.getProduct("c");
        System.out.println(c.getProductName());
    }
}

運(yùn)行結(jié)果

?

設(shè)計(jì)模式-簡單工廠模式(靜態(tài)工廠模式)java實(shí)現(xiàn),設(shè)計(jì)模式,設(shè)計(jì)模式,簡單工廠模式文章來源地址http://www.zghlxwxcb.cn/news/detail-636148.html

到了這里,關(guān)于設(shè)計(jì)模式-簡單工廠模式(靜態(tài)工廠模式)java實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 用Rust實(shí)現(xiàn)23種設(shè)計(jì)模式之簡單工廠

    在 Rust 中,可以使用結(jié)構(gòu)體和 trait 來實(shí)現(xiàn)工廠方法模式。工廠方法模式是一種創(chuàng)建型設(shè)計(jì)模式,通過定義一個創(chuàng)建對象的接口,讓子類決定實(shí)例化哪個類。下面是一個簡單的示例,展示了如何使用 Rust 實(shí)現(xiàn)工廠方法模式: 在上述示例中,我們首先定義了一個 Product trait,它定

    2024年02月14日
    瀏覽(26)
  • 【C++設(shè)計(jì)模式】用簡單工廠模式實(shí)現(xiàn)按汽車重量輸出汽車類型
  • [設(shè)計(jì)模式Java實(shí)現(xiàn)附plantuml源碼~創(chuàng)建型] 多態(tài)工廠的實(shí)現(xiàn)——工廠方法模式

    [設(shè)計(jì)模式Java實(shí)現(xiàn)附plantuml源碼~創(chuàng)建型] 多態(tài)工廠的實(shí)現(xiàn)——工廠方法模式

    前言: 為什么之前寫過Golang 版的設(shè)計(jì)模式,還在重新寫 Java 版? 答:因?yàn)閷τ谖叶?,?dāng)然也希望對正在學(xué)習(xí)的大伙有幫助。Java作為一門純面向?qū)ο蟮恼Z言,更適合用于學(xué)習(xí)設(shè)計(jì)模式。 為什么類圖要附上uml 因?yàn)楹芏嗳藢W(xué)習(xí)有做筆記的習(xí)慣,如果單純的只是放一張圖片,那

    2024年01月21日
    瀏覽(23)
  • 自學(xué)設(shè)計(jì)模式(簡單工廠模式、工廠模式、抽象工廠模式)

    使用工廠模式來生產(chǎn)某類對象(代碼簡化且容易維護(hù),類之間有血緣關(guān)系,可以通過工廠類進(jìn)行生產(chǎn)); 簡單工廠模式(用于創(chuàng)建簡單對象) 對于簡單工廠模式,需要的工廠類只有一個; 在工廠類中的公共成員函數(shù)來創(chuàng)建所需對象; 工廠模式 簡單工廠模式會違反開放封閉

    2024年02月11日
    瀏覽(27)
  • 設(shè)計(jì)模式(二)、工廠模式--簡單工廠模式

    簡單工廠模式:又叫做靜態(tài)工廠方法模式,是由一個工廠對象決定創(chuàng)建出哪一種產(chǎn)品類的實(shí)例。 需要注意的是:簡單工廠模式屬于創(chuàng)建型模式,但不屬于23種GOF設(shè)計(jì)模式之一? 該模式主要有以下幾個模塊構(gòu)成: 具體說明結(jié)合代碼,如下: 代碼中主要是有一個cake接父類,兩個

    2024年02月13日
    瀏覽(22)
  • 【設(shè)計(jì)模式】簡單工廠模式

    【設(shè)計(jì)模式】簡單工廠模式

    分析: 這一題看上去很簡單,但如果面試時你寫的是下面這種代碼,那大概率是過不了的。 上面代碼也能實(shí)現(xiàn)題目的功能,但是代碼沒有錯就是好的嗎? 以上代碼復(fù)用性低;可維護(hù)性差,如果要改+的邏輯,就會牽一發(fā)而動全身;擴(kuò)展性差,如果這個時候新增開平方的邏輯怎

    2024年02月12日
    瀏覽(25)
  • 設(shè)計(jì)模式-簡單工廠模式

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

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

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

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

    聊聊設(shè)計(jì)模式--簡單工廠模式

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

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

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

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

    2024年02月10日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包