溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java工廠模式實(shí)例分析

發(fā)布時(shí)間:2022-02-28 09:15:38 來源:億速云 閱讀:167 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下Java工廠模式實(shí)例分析的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

    優(yōu)點(diǎn)

    1.一個(gè)調(diào)用者想創(chuàng)建一個(gè)對(duì)象,只要知道其名稱就可以了。

    2.擴(kuò)展性高,如果想增加一個(gè)產(chǎn)品,只要擴(kuò)展一個(gè)工廠類就可以。

    3.屏蔽產(chǎn)品的具體實(shí)現(xiàn),調(diào)用者只關(guān)心產(chǎn)品的接口。

    缺點(diǎn)

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

    使用場景

    1.日志記錄器:記錄可能記錄到本地硬盤、系統(tǒng)事件、遠(yuǎn)程服務(wù)器等,用戶可以選擇記錄日志到什么地方。

    2.數(shù)據(jù)庫訪問,當(dāng)用戶不知道最后系統(tǒng)采用哪一類數(shù)據(jù)庫,以及數(shù)據(jù)庫可能有變化時(shí)。

    3.設(shè)計(jì)一個(gè)連接服務(wù)器的框架,需要三個(gè)協(xié)議,“POP3”、“IMAP”、“HTTP”,可以把這三個(gè)作為產(chǎn)品類,共同實(shí)現(xiàn)一個(gè)接口。

    一、實(shí)現(xiàn)方式

    例如:我們需要在電商平臺(tái)購買一臺(tái)手機(jī),我們并不需要去關(guān)心手機(jī)生產(chǎn)廠商是如何把手機(jī)生產(chǎn)出來的,我們只需要在搜索框輸入:華為手機(jī),小米手機(jī),就能購買到我們想要的手機(jī)了。下面看看具體實(shí)現(xiàn)吧。

    1、定義一個(gè)接口

    package com.asurplus.common.factory;
    public interface Phone {
        /**
         * 獲取手機(jī)
         *
         * @return
         */
        String getPhone();
    }

    2、定義兩個(gè)接口實(shí)現(xiàn)類

    package com.asurplus.common.factory;
    /**
     * 華為手機(jī)實(shí)現(xiàn)類
     */
    public class HuaweiPhone implements Phone {
        @Override
        public String getPhone() {
            return "華為手機(jī)";
        }
    }
    package com.asurplus.common.factory;
    /**
     * 小米手機(jī)實(shí)現(xiàn)類
     */
    public class XiaomiPhone implements Phone {
        @Override
        public String getPhone() {
            return "小米手機(jī)";
        }
    }

    3、定義一個(gè)工廠類

    package com.asurplus.common.factory;
    /**
     * 手機(jī)工廠類
     */
    public class PhoneFactory {
        /**
         * 獲取手機(jī)
         *
         * @param name
         * @return
         */
        public static Phone getPhone(String name) {
            if ("華為".equals(name)) {
                return new HuaweiPhone();
            }
            if ("小米".equals(name)) {
                return new XiaomiPhone();
            }
            return null;
        }
    }

    二、測試

    package com.asurplus.common.factory;
    /**
     * 工廠模式
     */
    public class TestMain {
        public static void main(String[] args) {
            // 獲取手機(jī)
            Phone huaweiPhone = PhoneFactory.getPhone("華為");
            System.out.println(huaweiPhone.getPhone());
        }
    }

    輸出結(jié)果

    Java工廠模式實(shí)例分析

    我們輸入的:華為,得到了華為手機(jī),從而實(shí)現(xiàn)了我們的工廠模式。

    以上就是“Java工廠模式實(shí)例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI