摘要:簡單工廠模式不屬于種設(shè)計(jì)模式之一,簡單工廠模式是工廠模式家族中最簡單實(shí)用的模式,可以理解為是不同工廠模式的一個特殊實(shí)現(xiàn)??偨Y(jié)如果操作工廠類也就是需求在相當(dāng)長的一段時間不會變更的話,那么此模式就有使用的必要了。后面會看到簡單工廠模式的便利之處
定義:一個工廠對象決定創(chuàng)建出哪一種產(chǎn)品類的實(shí)例。簡單工廠模式不屬于GOF23種設(shè)計(jì)模式之一,簡單工廠模式是工廠模式家族中最簡單實(shí)用的模式,可以理解為是不同工廠模式的一個特殊實(shí)現(xiàn)。
/** * 操作工廠類 */ class OperationFactory { /** * * @param operate 根據(jù)傳進(jìn)來的操作符,選擇實(shí)例化響應(yīng)的對象 * @return */ public static Operation createOperate(String operate){ Operation oper = null; switch(operate){ case "+": oper = new OperationAdd(); break; case "-": oper = new OperationSub(); break; case "*": oper = new OperationMul(); break; case "/": oper = new OperationDiv(); break; } return oper; } } /** * 操作抽象類,各種算數(shù)操作需要繼承此類,并實(shí)現(xiàn)getResult方法 */ public abstract class Operation { abstract Integer getResult(int a, int b); } class OperationAdd extends Operation { @Override Integer getResult(int a, int b) { return a+b; } } class OperationSub extends Operation { @Override Integer getResult(int a, int b) { return a-b; } } class OperationMul extends Operation { @Override Integer getResult(int a, int b) { return a*b; } } class OperationDiv extends Operation { @Override Integer getResult(int a, int b) { return a/b; } } /** * 測試操作不再贅述 */ public static void main(String[] args) { Operation oper = OperationFactory.createOperate("+"); oper.getResult(10, 5); }
優(yōu)點(diǎn):能根據(jù)需要(傳入的參數(shù))創(chuàng)建對象。
缺點(diǎn):很明顯,如果有需求變更,便需要更改操作工廠類,需要再加一個“case”,再增加一個具體的操作類,違反了開放-封閉原則;而且,如果有相當(dāng)多的分支的話,會導(dǎo)致代碼不易閱讀的不良后果。
總結(jié):如果操作工廠類(也就是需求)在相當(dāng)長的一段時間不會變更的話,那么此模式就有使用的必要了。(后面會看到簡單工廠模式的便利之處)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/70570.html
摘要:不過怎么來說工廠方法模式是簡單工廠模式的升級版。其次,工廠模式是一種典型的解耦模式,迪米特法則在工廠模式中表現(xiàn)的尤為明顯。 工廠模式想必大家在開發(fā)過程中會經(jīng)常用到,顧名思義其就是作為一個工廠用來生產(chǎn)產(chǎn)品的,下面來簡單介紹幾種常見的工廠模式。 0x01 簡單工廠模式 1、類圖結(jié)構(gòu)showImg(/img/bVFf1t?w=531&h=278); 2、角色分類 工廠類:其內(nèi)部具有一點(diǎn)的判...
摘要:二簡單工廠模式組成工廠類工廠模式的核心,通過調(diào)用它來實(shí)現(xiàn)其他類的功能。三工廠方法模式利用工廠方法模式可以有效解決簡單工廠模式破壞開閉原則的問題。 一、概念 1、工廠模式分為三類:(1)簡單工廠模式:一個工廠創(chuàng)建所有產(chǎn)品(2)工廠方法模式:一個工廠方法創(chuàng)建一個產(chǎn)品(3)抽象工廠模式:一個工廠方法創(chuàng)建一類產(chǎn)品 2、創(chuàng)建型模式這種模式是指將實(shí)例的創(chuàng)建和使用分離開來,隱藏類實(shí)例的創(chuàng)建細(xì)節(jié),外界...
摘要:需要說明的是在設(shè)計(jì)模式一書中將工廠模式分為兩類工廠方法模式與抽象工廠模式,將簡單工廠模式看為工廠方法模式的一種特例,兩者歸為一類。工廠模式的作用工廠模式的作用封裝變化創(chuàng)建邏輯有可能變化,封裝成工廠類之后,創(chuàng)建邏輯的變更對調(diào)用者透明。1、什么是工廠模式Define an interface for creating an object,but let subclasses decide whi...
摘要:又稱為多態(tài)性工廠模式或虛擬構(gòu)造子模式。簡單工廠模式簡單工廠模式簡單工廠模式又稱為靜態(tài)工廠方法模式,它屬于類創(chuàng)建型模式。多態(tài)性設(shè)計(jì)工廠方法模式之所以又被稱為多態(tài)工廠模式,是因?yàn)樗械木唧w工廠類都具有同一抽象父類。 點(diǎn)擊進(jìn)入我的博客 2.1 簡單工廠模式 2.1.1 工廠模式的幾種形態(tài) 工廠模式主要用一下幾種形態(tài): 簡單工廠(Simple Factory):專門定義一個類來負(fù)責(zé)創(chuàng)建其他...
摘要:我認(rèn)為按書上的順序比較好理解因?yàn)楹唵戊o態(tài)工廠模式是在工廠方法模式上縮減,抽象工廠模式是在工廠方法模式上再增強(qiáng)。所以我就先講工廠方法模式了。抽象工廠模式抽象工廠模式就比較復(fù)雜了,我們一般的應(yīng)用都寫不到。 前言 只有光頭才能變強(qiáng) 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡單啦 單例模式你會幾種寫法? 昨天寫了單例模式了,今天是時候?qū)懝S模式啦~ 工廠模式我個人認(rèn)為其實(shí)比...
閱讀 2444·2021-09-22 15:41
閱讀 1458·2021-08-19 10:54
閱讀 1768·2019-08-23 15:11
閱讀 3407·2019-08-23 10:23
閱讀 1434·2019-08-22 16:28
閱讀 804·2019-08-22 15:11
閱讀 746·2019-08-22 14:53
閱讀 720·2019-08-22 13:49