最近在看《大話設計模式》,通過這本書來學習關於設計模式的思想,該書通過有趣的例子讓設計模式更加通俗易懂。
乙個有趣的例子:
通過曹操寫詩,不斷修改,讓印刷的工匠不斷刻板 頭疼不已;聯想到程式設計師日常開發過程中,面對產品、客戶需求的不斷變更
而使程式設計師不斷修改**,但面對已經 完成的**,再去修改有可能面臨全盤否定的重新再來的痛苦。
根本原因是我們寫的**,可維護性差、不易擴充套件、更談不上覆用。
學習了物件導向 的思想 封裝、繼承、多型,高階則需要通過設計模式讓程式更加的靈活、易於修改、易於復用。
乙個計算器程式的引發的設計模式——工廠模式
first :
寫乙個簡單的程式
public double getresult(double num1,double num2,int operation)
return result ;
}
這樣寫:用到了封裝,講業務邏輯和檢視分開來寫。
以前的我在寫程式時,基本也就是種情況,但是那裡用到了繼承和多型呢?
接下來的業務場景會讓我們有所思考:
1 新增乙個 平方根的演算法。
解決方案 在switch 中新增乙個分支。
存在的風險有可能在修改時,將case1或者2的內容修改掉。
或者 你所做的是公司的工資演算法,在你新新增乙個分支時則必須要向你提供以前的**,這樣會有很大風險,
高內聚--帶來的不便
2 這時候我們用工廠設計模式來處理。
//抽象的父類
public abstract class operation
public void setnumber1(double number1)
public double getnumber2()
public void setnumber2(double number2)
}
//加法的實現
public class operationjia extends operation
}
//減法的實現
public class operationjian extends operation
}
//簡單的工廠模式。
public class operationfactory
return oper;
}}
//測試demo
public static void main(string args)
輸出結果:0.0
以上就是乙個簡單的工廠模式。
設計模式 工廠模式 抽象工廠模式
建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...
設計模式 工廠設計模式
用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...
設計模式 工廠設計模式
工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...