欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java簡單工廠模式入門

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

前言

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

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

試?yán)?/h3>

以飲料加工廠為例

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

public interface Drink {
    void production();
}

2. 具體飲料類的實(shí)現(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ǎn)

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

缺點(diǎn)

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

總結(jié)

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

相關(guān)文章

  • Java反射機(jī)制概念、原理與用法總結(jié)

    Java反射機(jī)制概念、原理與用法總結(jié)

    這篇文章主要介紹了Java反射機(jī)制概念、原理與用法,較為詳細(xì)的分析了java反射機(jī)制的概念、原理,并結(jié)合實(shí)例形式總結(jié)分析了java反射機(jī)制的具體使用方法與相關(guān)注意事項,需要的朋友可以參考下
    2017-11-11
  • 基于SpringBoot + Redis實(shí)現(xiàn)密碼暴力破解防護(hù)

    基于SpringBoot + Redis實(shí)現(xiàn)密碼暴力破解防護(hù)

    在現(xiàn)代應(yīng)用程序中,保護(hù)用戶密碼的安全性是至關(guān)重要的,密碼暴力破解是指通過嘗試多個密碼組合來非法獲取用戶賬戶的密碼,為了保護(hù)用戶密碼不被暴力破解,我們可以使用Spring Boot和Redis來實(shí)現(xiàn)一些防護(hù)措施,本文將介紹如何利用這些技術(shù)來防止密碼暴力破解攻擊
    2023-06-06
  • 基于logback實(shí)現(xiàn)純java版本的SDK組件

    基于logback實(shí)現(xiàn)純java版本的SDK組件

    這篇文章主要介紹了基于logback實(shí)現(xiàn)純java版本的SDK組件,在項目開發(fā)過程中通常會使用logback作為日志記錄的依賴工具,使用方式是引入logback相關(guān)jar包,然后配置logback.xml配置文件的方式來實(shí)現(xiàn),需要的朋友可以參考下
    2023-11-11
  • Java復(fù)制文件常用的三種方法

    Java復(fù)制文件常用的三種方法

    今天小編就為大家分享一篇關(guān)于Java復(fù)制文件常用的三種方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • SpringBoot如何配置獲取request中body的json格式參數(shù)

    SpringBoot如何配置獲取request中body的json格式參數(shù)

    這篇文章主要介紹了SpringBoot如何配置獲取request中body的json格式參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • IDEA打包maven多模塊相互依賴項目全過程

    IDEA打包maven多模塊相互依賴項目全過程

    這篇文章主要介紹了IDEA打包maven多模塊相互依賴項目全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • SpringBoot中的@RequestMapping注解的用法示例

    SpringBoot中的@RequestMapping注解的用法示例

    @RequestMapping注解是SpringBoot中最常用的注解之一,它可以幫助開發(fā)者定義和處理HTTP請求,本篇文章我們將詳細(xì)為大家介紹如何使用SpringBoot中的@RequestMapping注解,感興趣的同學(xué)跟著小編一起來學(xué)習(xí)吧
    2023-06-06
  • java的前期綁定和后期綁定使用示例

    java的前期綁定和后期綁定使用示例

    java的前期綁定在程序執(zhí)行前根據(jù)編譯時類型綁定,調(diào)用開銷較小,如C語言只有前期綁定這種方法調(diào)用
    2014-02-02
  • mybatis中的字符串拼接問題

    mybatis中的字符串拼接問題

    這篇文章主要介紹了mybatis中的字符串拼接問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java中compareTo方法使用小結(jié)

    Java中compareTo方法使用小結(jié)

    compareTo是Java中Object類中的一個方法,它的作用是比較兩個對象的大小關(guān)系,本文主要介紹了Java中compareTo方法使用小結(jié),感興趣的可以了解一下
    2024-01-01

最新評論