最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java簡單工廠模式入門

 更新時間:2021年07月21日 11:48:33   作者:讓程序飛  
下面小編就為大家?guī)硪黄猨ava工廠模式入門文章。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

前言

定義一個工廠類,他可以根據(jù)參數(shù)的不同返回不同類的實例,被創(chuàng)建的實例通常都具有共同的父類

在簡單工廠模式中用于被創(chuàng)建實例的方法通常為靜態(tài)(static)方法,因此簡單工廠模式又被成為靜態(tài)工廠方法(Static Factory Method) 只需要傳入一個正確的參數(shù),就可以獲取所需要的對象,而無需知道其實現(xiàn)過程

試?yán)?/h3>

以飲料加工廠為例

1. 創(chuàng)建飲料接口(或者抽象類)

public interface Drink {
    void production();
}

2. 具體飲料類的實現(xiàn)(可樂、雪碧)

public class ColaDrinkProduction implements Drink{
    @Override
    public void production() {
        System.out.println("生產(chǎn)可樂飲料");
    }
}
public class SpriteDrinkProduction implements Drink{
    @Override
    public void production() {
        System.out.println("生產(chǎn)雪碧飲料");
    }
}

3. 飲料生產(chǎn)工廠類

public class DrinkProductionFactory {
    public static Drink productionDrink(String type){
        switch (type){
            case "cloa":
                return new ColaDrinkProduction();
            default:
                return new SpriteDrinkProduction();
        }
    }
}

4. 工廠調(diào)用

需要什么對象傳入對應(yīng)的參數(shù)即可

Drink cloa = DrinkProductionFactory.productionDrink("cloa");
 cloa.production();

特點

它是一個具體的類,非接口 抽象類。有一個重要的調(diào)用方法(productionDrink),通常是靜態(tài)的,利用if或者 switch創(chuàng)建產(chǎn)品并返回

缺點

擴(kuò)展性差 我想增加一種飲料,除了新增一個飲料產(chǎn)品類,還需要修改工廠類方法(增加‘Case'的分支條件) 這樣來說 不但對擴(kuò)展開放了,對修改也開放了 違背了開放-封閉原則

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • 如何利用Java?AWT?創(chuàng)建一個簡易計算器

    如何利用Java?AWT?創(chuàng)建一個簡易計算器

    這篇文章主要介紹了如何利用Java?AWT?創(chuàng)建一個簡易計算器,AWT?是一個有助于構(gòu)建?GUI?的?API?基于?java?應(yīng)用程序,下面關(guān)于其相關(guān)資料實現(xiàn)計算器的內(nèi)容詳細(xì),需要的朋友可以參考一下
    2022-03-03
  • Java實現(xiàn)把文件壓縮成zip文件的示例代碼

    Java實現(xiàn)把文件壓縮成zip文件的示例代碼

    這篇文章主要為大家介紹了如何通過Java語言實現(xiàn)將文件壓縮成zip文件,本文中示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • Eolink上傳文件到Java后臺進(jìn)行處理的示例代碼

    Eolink上傳文件到Java后臺進(jìn)行處理的示例代碼

    這篇文章主要介紹了Eolink上傳文件到Java后臺進(jìn)行處理,這里是上傳的excel表格數(shù)據(jù)并轉(zhuǎn)換為java集合對象、然后進(jìn)行業(yè)務(wù)邏輯處理判斷最后保存到數(shù)據(jù)庫?,需要的朋友可以參考下
    2022-12-12
  • Jmeter使用接口傳遞數(shù)據(jù)過程圖解

    Jmeter使用接口傳遞數(shù)據(jù)過程圖解

    這篇文章主要介紹了Jmeter使用接口傳遞數(shù)據(jù)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • MyBatisPlus的簡介及案例詳解

    MyBatisPlus的簡介及案例詳解

    MyBatisPlus(簡稱MP)是基于MyBatis框架基礎(chǔ)上開發(fā)的增強(qiáng)型工具,旨在簡化開發(fā)、提高效率。本文將為大家詳細(xì)介紹一下MyBatisPlus是使用,需要的可以參考一下
    2022-07-07
  • Spring Boot 與 Kotlin 上傳文件的示例代碼

    Spring Boot 與 Kotlin 上傳文件的示例代碼

    這篇文章主要介紹了Spring Boot 與 Kotlin 上傳文件的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • SpringBoot在IDEA中實現(xiàn)熱部署的步驟

    SpringBoot在IDEA中實現(xiàn)熱部署的步驟

    這篇文章主要介紹了SpringBoot在IDEA中實現(xiàn)熱部署的步驟,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-11-11
  • java字符串?dāng)?shù)字補(bǔ)齊位數(shù)詳解

    java字符串?dāng)?shù)字補(bǔ)齊位數(shù)詳解

    這篇文章主要介紹了java字符串?dāng)?shù)字補(bǔ)齊位數(shù),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Quarkus篇入門創(chuàng)建項目搭建debug環(huán)境

    Quarkus篇入門創(chuàng)建項目搭建debug環(huán)境

    這篇文章主要為大家介紹了Quarkus篇入門創(chuàng)建項目搭建debug環(huán)境,先來一套hello?world,來搭建基本的運行及調(diào)試環(huán)境吧
    2022-02-02
  • 用java生成html文件實現(xiàn)原理及代碼

    用java生成html文件實現(xiàn)原理及代碼

    用printStream來向html文件里輸出數(shù)據(jù),先創(chuàng)建一個StringBuilder對象,通過append方法來為其添加html語句,具體實現(xiàn)如下,感興趣的朋友可以參考下,希望對大家有所幫助
    2013-08-08

最新評論

桃园县| 水城县| 兴宁市| 大石桥市| 高台县| 东光县| 泽库县| 福清市| 龙州县| 团风县| 那坡县| 科尔| 阿拉善左旗| 满城县| 夏河县| 华宁县| 高碑店市| 阳朔县| 梁平县| 工布江达县| 三门峡市| 德令哈市| 新宾| 枣庄市| 津南区| 利川市| 浪卡子县| 无棣县| 清新县| 清流县| 凤阳县| 尚义县| 郸城县| 佛坪县| 鄂温| 颍上县| 宁化县| 镇安县| 寻乌县| 铜川市| 汤阴县|