二維碼
        企資網

        掃一掃關注

        當前位置: 首頁 » 企資快訊 » 辦公 » 正文

        設計模式系列_工廠模式

        放大字體  縮小字體 發布日期:2021-09-18 05:45:23    作者:王恒    瀏覽次數:25
        導讀

        工廠模式屬于創建型設計模式。是日常使用比較多的一種設計模式。比如Logback,Spring等框架中都大量使用該設計模式。上篇文章提到的簡單工廠模式雖然在簡單系統可以用一用,但是因為工廠類本身包含太多業務邏輯,而

        工廠模式屬于創建型設計模式。是日常使用比較多的一種設計模式。比如Logback,Spring等框架中都大量使用該設計模式。

        上篇文章提到的簡單工廠模式雖然在簡單系統可以用一用,但是因為工廠類本身包含太多業務邏輯,而且如果想增加新的圖表類型,需要修改工廠類等缺點。所以我們真正生產系統更多地使用工廠模式。

        工廠模式為每一個類都定義一個單獨的工廠類,該工廠類只負責創建單一的產品。

        舉個例子

        通過工廠模式實現日志的創建,為不同種類的Logger分別創建不同類型的工廠。

        來看一下UML圖:

        來看一下代碼如何實現

        先來定義一個Logger接口,以及LoggerFactory接口

        public interface Logger {    void writeLogger();}復制代碼
        public interface LoggerFactory{    Logger createLogger();}復制代碼

        分別定義FileLogger和FileLoggerFactory

        public class FileLogger implements Logger {    @Override    public void writeLogger() {        System.out.println("File logger");    }}復制代碼
        public class FileLoggerFactory implements LoggerFactory {    @Override    public Logger createLogger() {        //不同Logger的個性初始化工作        Logger logger =  new FileLogger();        return logger;    }}復制代碼

        如果想增加新的Logger直接實現Logger和LoggerFactory就好了,看一下客戶端如何使用

        public class Client {    public static void main(String[] args){        Logger logger;        LoggerFactory loggerFactory;        loggerFactory = new FileLoggerFactory();        logger = loggerFactory.createLogger();        logger.writeLogger();    }}復制代碼

        總結

        工廠模式是創建型模式之一,日常使用比較多,每類產品都有對應的一個工廠類。工廠模式把簡單工廠的內部邏輯遷移到了客戶端,當需要對功能擴展時,只需要修改客戶端就OK了。


        作者:花括號MC
        鏈接:https://juejin.cn/post/7008785463775346695
        來源:掘金
        著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


         
        (文/王恒)
        免責聲明
        本文僅代表作發布者:王恒個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們刪除處理郵件:weilaitui@qq.com。
         

        Copyright ? 2016 - 2025 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

        粵ICP備16078936號

        微信

        關注
        微信

        微信二維碼

        WAP二維碼

        客服

        聯系
        客服

        聯系客服:

        在線QQ: 303377504

        客服電話: 020-82301567

        E_mail郵箱: weilaitui@qq.com

        微信公眾號: weishitui

        客服001 客服002 客服003

        工作時間:

        周一至周五: 09:00 - 18:00

        反饋

        用戶
        反饋

        主站蜘蛛池模板: 国产精品一区二区电影| 一区二区不卡久久精品| 一区二区三区免费视频播放器 | 亚洲国产精品一区第二页| 久久国产精品免费一区| 亚洲欧洲专线一区| 精品一区二区三区水蜜桃| 精品国产日产一区二区三区 | 国模私拍福利一区二区| 亚州AV综合色区无码一区| 福利电影一区二区| 国产91大片精品一区在线观看 | 精彩视频一区二区| 日韩一区二区视频在线观看| 久久亚洲色一区二区三区| 亚洲日韩中文字幕无码一区| 久久91精品国产一区二区| 国产乱码精品一区二区三区麻豆 | 日韩在线不卡免费视频一区| 无码AV一区二区三区无码| 欧美日韩综合一区二区三区| 国产AV一区二区三区无码野战 | 亚洲乱码国产一区三区| 一区二区日韩国产精品| 国产成人高清亚洲一区91| 天堂一区人妻无码| 欧美日韩国产免费一区二区三区| 亚洲日本一区二区一本一道 | 色偷偷av一区二区三区| 国产成人综合亚洲一区| 在线视频一区二区三区四区| 亚洲日本va一区二区三区| 日韩在线一区二区| 天天视频一区二区三区| 日韩免费视频一区| 91麻豆精品国产自产在线观看一区| 日韩人妻无码一区二区三区综合部 | 无码人妻一区二区三区免费n鬼沢| 丝袜人妻一区二区三区网站| 日韩内射美女人妻一区二区三区| 鲁丝片一区二区三区免费|