摘要:簡單工廠模式什么是簡單工廠模式簡單的工廠模式到底要實例誰,將來會不會增加實例化的對象,都應該考慮用一個多帶帶的類來做這個創造實例的過程,這就是工廠。
## 簡單工廠模式 ##什么是簡單工廠模式
**簡單的工廠模式**:到底要實例誰,將來會不會增加實例化的對象,都應該考慮用一個多帶帶的類來做這個創造實例的過程,這就是工廠。步驟一
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("除數不能為零"); } 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; } }步驟三
//簡單的工廠模式:到底要實例誰,將來會不會增加實例化的對象,都應該考慮用一個多帶帶的類來做這個創造實例的過程,這就是工廠。 //一句話就是一個工廠里面裝著一堆需要實例的對象 public class OperationFactory { public static OperationObject createOperation(String operation){ //負責生產加減乘除 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) { //實例所需要的計算類型 OperationObject operationObject = OperationFactory.createOperation("-"); operationObject.set_numberA(2); operationObject.set_numberB(4); double result = operationObject.getResult(); System.out.println(result); } }
簡單工廠的問題就在于swich case(或者if else)。每當新增一種產品時,你都需要去維護工廠中的判斷語句,造成該工廠類不斷增長,各種判斷擠在一起,給擴展和維護帶來麻煩。產品和工廠沒有實現完全解耦,綁定在一起。
以上內容為個人學習大話設計模式后筆記,不喜勿噴。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74592.html
摘要:基于工廠角色和產品角色的多態性設計是工廠方法模式的關鍵。工廠方法模式之所以又被稱為多態工廠模式,是因為所有的具體工廠類都具有同一抽象父類。工廠方法模式總結工廠方法模式是簡單工廠模式的進一步抽象和推廣。 JavaScript工廠模式 首先需要說一下工廠模式。工廠模式根據抽象程度的不同分為三種 簡單工廠模式 工廠方法模式 抽象工廠模式 1.簡單工廠模式 簡單工廠模式:又稱為靜態工廠方法...
摘要:簡單工廠,工廠模式和抽象工廠。不要認為簡單工廠是用就覺得一無是處,也不要覺得抽象工廠比較高大上就到處套。 工廠模式,實際上也會根據業務情景不同會有不同的實現方式。一般分為3種。簡單工廠,工廠模式和抽象工廠。顧名思義,這三種從簡單到抽象,名稱越來越高大上,實現方式肯定是越來越復雜 結論1:三種工廠的實現越來越復雜 簡單工廠 public class Factory { // 定義...
摘要:二簡單工廠模式組成工廠類工廠模式的核心,通過調用它來實現其他類的功能。三工廠方法模式利用工廠方法模式可以有效解決簡單工廠模式破壞開閉原則的問題。 一、概念 1、工廠模式分為三類:(1)簡單工廠模式:一個工廠創建所有產品(2)工廠方法模式:一個工廠方法創建一個產品(3)抽象工廠模式:一個工廠方法創建一類產品 2、創建型模式這種模式是指將實例的創建和使用分離開來,隱藏類實例的創建細節,外界...
摘要:需要說明的是在設計模式一書中將工廠模式分為兩類工廠方法模式與抽象工廠模式,將簡單工廠模式看為工廠方法模式的一種特例,兩者歸為一類。工廠模式的作用工廠模式的作用封裝變化創建邏輯有可能變化,封裝成工廠類之后,創建邏輯的變更對調用者透明。1、什么是工廠模式Define an interface for creating an object,but let subclasses decide whi...
摘要:我認為按書上的順序比較好理解因為簡單靜態工廠模式是在工廠方法模式上縮減,抽象工廠模式是在工廠方法模式上再增強。所以我就先講工廠方法模式了。抽象工廠模式抽象工廠模式就比較復雜了,我們一般的應用都寫不到。 前言 只有光頭才能變強 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡單啦 單例模式你會幾種寫法? 昨天寫了單例模式了,今天是時候寫工廠模式啦~ 工廠模式我個人認為其實比...
閱讀 1395·2021-11-08 13:14
閱讀 747·2021-09-23 11:31
閱讀 1038·2021-07-29 13:48
閱讀 2781·2019-08-29 12:29
閱讀 3371·2019-08-29 11:24
閱讀 1899·2019-08-26 12:02
閱讀 3689·2019-08-26 10:34
閱讀 3435·2019-08-23 17:07