摘要:簡(jiǎn)單工廠模式什么是簡(jiǎn)單工廠模式簡(jiǎn)單的工廠模式到底要實(shí)例誰(shuí),將來(lái)會(huì)不會(huì)增加實(shí)例化的對(duì)象,都應(yīng)該考慮用一個(gè)多帶帶的類來(lái)做這個(gè)創(chuàng)造實(shí)例的過(guò)程,這就是工廠。
## 簡(jiǎn)單工廠模式 ##什么是簡(jiǎn)單工廠模式
**簡(jiǎn)單的工廠模式**:到底要實(shí)例誰(shuí),將來(lái)會(huì)不會(huì)增加實(shí)例化的對(duì)象,都應(yīng)該考慮用一個(gè)多帶帶的類來(lái)做這個(gè)創(chuàng)造實(shí)例的過(guò)程,這就是工廠。步驟一
public class OperationObject { private double _numberA = 0; private double _numberB = 0; public double get_numberA() { return _numberA; } public void set_numberA(double _numberA) { this._numberA = _numberA; } public double get_numberB() { return _numberB; } public void set_numberB(double _numberB) { this._numberB = _numberB; } public double getResult(){ double result = 0; return result; } }步驟二
//加法 public class OperationAdd extends OperationObject { public double getResult(){ double result = 0; result = get_numberA()+get_numberB(); return result; } } //加法 public class OperationDiv extends OperationObject{ public double getResult() { double result = 0; if (get_numberB() == 0){ try { throw new Exception("除數(shù)不能為零"); } catch (Exception e) { e.printStackTrace(); } } result = get_numberA() / get_numberB(); return result; } } //乘法 public class OperationMul extends OperationObject { public double getResult(){ double result = 0; result = get_numberA() * get_numberB(); return result; } } //除法 public class OperationSub extends OperationObject { public double getResult(){ double result = 0; result = get_numberA() - get_numberB(); return result; } }步驟三
//簡(jiǎn)單的工廠模式:到底要實(shí)例誰(shuí),將來(lái)會(huì)不會(huì)增加實(shí)例化的對(duì)象,都應(yīng)該考慮用一個(gè)多帶帶的類來(lái)做這個(gè)創(chuàng)造實(shí)例的過(guò)程,這就是工廠。 //一句話就是一個(gè)工廠里面裝著一堆需要實(shí)例的對(duì)象 public class OperationFactory { public static OperationObject createOperation(String operation){ //負(fù)責(zé)生產(chǎn)加減乘除 OperationObject operationObject = null; switch (operation){ case "+": operationObject = new OperationAdd(); break; case "-": operationObject = new OperationSub(); break; case "*": operationObject = new OperationMul(); break; case "/": operationObject = new OperationDiv(); break; } return operationObject; } }步驟四
public class factoryDesign { public static void main(String[] args) { //實(shí)例所需要的計(jì)算類型 OperationObject operationObject = OperationFactory.createOperation("-"); operationObject.set_numberA(2); operationObject.set_numberB(4); double result = operationObject.getResult(); System.out.println(result); } }
簡(jiǎn)單工廠的問(wèn)題就在于swich case(或者if else)。每當(dāng)新增一種產(chǎn)品時(shí),你都需要去維護(hù)工廠中的判斷語(yǔ)句,造成該工廠類不斷增長(zhǎng),各種判斷擠在一起,給擴(kuò)展和維護(hù)帶來(lái)麻煩。產(chǎn)品和工廠沒(méi)有實(shí)現(xiàn)完全解耦,綁定在一起。
以上內(nèi)容為個(gè)人學(xué)習(xí)大話設(shè)計(jì)模式后筆記,不喜勿噴。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/74592.html
摘要:基于工廠角色和產(chǎn)品角色的多態(tài)性設(shè)計(jì)是工廠方法模式的關(guān)鍵。工廠方法模式之所以又被稱為多態(tài)工廠模式,是因?yàn)樗械木唧w工廠類都具有同一抽象父類。工廠方法模式總結(jié)工廠方法模式是簡(jiǎn)單工廠模式的進(jìn)一步抽象和推廣。 JavaScript工廠模式 首先需要說(shuō)一下工廠模式。工廠模式根據(jù)抽象程度的不同分為三種 簡(jiǎn)單工廠模式 工廠方法模式 抽象工廠模式 1.簡(jiǎn)單工廠模式 簡(jiǎn)單工廠模式:又稱為靜態(tài)工廠方法...
摘要:不過(guò)怎么來(lái)說(shuō)工廠方法模式是簡(jiǎn)單工廠模式的升級(jí)版。其次,工廠模式是一種典型的解耦模式,迪米特法則在工廠模式中表現(xiàn)的尤為明顯。 工廠模式想必大家在開(kāi)發(fā)過(guò)程中會(huì)經(jīng)常用到,顧名思義其就是作為一個(gè)工廠用來(lái)生產(chǎn)產(chǎn)品的,下面來(lái)簡(jiǎn)單介紹幾種常見(jiàn)的工廠模式。 0x01 簡(jiǎn)單工廠模式 1、類圖結(jié)構(gòu)showImg(/img/bVFf1t?w=531&h=278); 2、角色分類 工廠類:其內(nèi)部具有一點(diǎn)的判...
摘要:簡(jiǎn)單工廠,工廠模式和抽象工廠。不要認(rèn)為簡(jiǎn)單工廠是用就覺(jué)得一無(wú)是處,也不要覺(jué)得抽象工廠比較高大上就到處套。 工廠模式,實(shí)際上也會(huì)根據(jù)業(yè)務(wù)情景不同會(huì)有不同的實(shí)現(xiàn)方式。一般分為3種。簡(jiǎn)單工廠,工廠模式和抽象工廠。顧名思義,這三種從簡(jiǎn)單到抽象,名稱越來(lái)越高大上,實(shí)現(xiàn)方式肯定是越來(lái)越復(fù)雜 結(jié)論1:三種工廠的實(shí)現(xiàn)越來(lái)越復(fù)雜 簡(jiǎn)單工廠 public class Factory { // 定義...
摘要:二簡(jiǎn)單工廠模式組成工廠類工廠模式的核心,通過(guò)調(diào)用它來(lái)實(shí)現(xiàn)其他類的功能。三工廠方法模式利用工廠方法模式可以有效解決簡(jiǎn)單工廠模式破壞開(kāi)閉原則的問(wèn)題。 一、概念 1、工廠模式分為三類:(1)簡(jiǎn)單工廠模式:一個(gè)工廠創(chuàng)建所有產(chǎn)品(2)工廠方法模式:一個(gè)工廠方法創(chuàng)建一個(gè)產(chǎn)品(3)抽象工廠模式:一個(gè)工廠方法創(chuàng)建一類產(chǎn)品 2、創(chuàng)建型模式這種模式是指將實(shí)例的創(chuàng)建和使用分離開(kāi)來(lái),隱藏類實(shí)例的創(chuàng)建細(xì)節(jié),外界...
摘要:需要說(shuō)明的是在設(shè)計(jì)模式一書(shū)中將工廠模式分為兩類工廠方法模式與抽象工廠模式,將簡(jiǎn)單工廠模式看為工廠方法模式的一種特例,兩者歸為一類。工廠模式的作用工廠模式的作用封裝變化創(chuàng)建邏輯有可能變化,封裝成工廠類之后,創(chuàng)建邏輯的變更對(duì)調(diào)用者透明。1、什么是工廠模式Define an interface for creating an object,but let subclasses decide whi...
摘要:我認(rèn)為按書(shū)上的順序比較好理解因?yàn)楹?jiǎn)單靜態(tài)工廠模式是在工廠方法模式上縮減,抽象工廠模式是在工廠方法模式上再增強(qiáng)。所以我就先講工廠方法模式了。抽象工廠模式抽象工廠模式就比較復(fù)雜了,我們一般的應(yīng)用都寫(xiě)不到。 前言 只有光頭才能變強(qiáng) 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡(jiǎn)單啦 單例模式你會(huì)幾種寫(xiě)法? 昨天寫(xiě)了單例模式了,今天是時(shí)候?qū)懝S模式啦~ 工廠模式我個(gè)人認(rèn)為其實(shí)比...
閱讀 1457·2021-11-08 13:14
閱讀 816·2021-09-23 11:31
閱讀 1118·2021-07-29 13:48
閱讀 2857·2019-08-29 12:29
閱讀 3439·2019-08-29 11:24
閱讀 1963·2019-08-26 12:02
閱讀 3809·2019-08-26 10:34
閱讀 3528·2019-08-23 17:07