最近這幾天把之前學到的設計模式寫個總結,現在先寫個簡單工廠模式
先看下uml圖吧
從uml圖中我們可以看出,phonefactory呼叫getphone方法去產生對應的phone物件
然我們看看**吧
package edu.fjnu.cs.hwb.esayfactory;
//定義個phone介面
public inte***ce phone
然後看看具體的iphone實現
package edu.fjnu.cs.hwb.esayfactory;
public class iphone implements phone
}之後是xiaomi的
package edu.fjnu.cs.hwb.esayfactory;
public class xiaomi implements phone
}最後就是簡單工廠的實現了
package edu.fjnu.cs.hwb.esayfactory;
public class phonefactory
else if(type.equalsignorecase("xiaomi"))
return phone;
}}看下客戶端程式員怎麼使用這個工廠
package edu.fjnu.cs.hwb.esayfactory;
public class client
}結果:
總結:簡單工廠,顧名思義就是簡單,但是它不易擴充套件,如果要增加新的phone型別,那麼就要修改原有的phonefactory的**,這與物件導向的開閉原則(對擴充套件開放,對修改關閉)相矛盾。所以,就會出現了工廠模式。
工廠模式下次再講。
設計模式之二 簡單工廠模式
前言 簡單工廠模式根據提供的資料或者引數返回幾個可能的類中的乙個例項,說通俗點有點像物件導向程式設計中的多型性,乙個基類,有多個派生類,在另外的呼叫程式中,根據引數來決定返回這個基類的哪個具體的派生類,返回值為基類型別,因為基類的引用可以指向派生類物件,而且這些所有的派生類都包含有基類的函式,也就是...
java設計模式之二工廠模式
工廠模式主要用一下幾種形態 1 簡單工廠 factory 2 工廠方法 factory method 3 抽象工廠 abstract factory 又叫靜態工廠,是工廠模式三中狀態中結構最為簡單的。主要有乙個靜態方法,用來接受引數,並根據引數來決定返回實現同一介面的不同類的例項。我們來看乙個具體的...
PHP 設計模式之二 工廠模式
工廠模式的使用頻率比較高。它的定義為 定義乙個類,該類主要負責系統的去例項化一些其它的類。通俗點說就是,你告訴我你需要哪個類的例項即可,其它的你不用管,我幫你去例項化,你只管用即可。工廠物件可能會動態地建立產品物件的類,或者從物件池中返回乙個物件,或者對所建立的物件進行複雜的配置,或者應用其他的操作...