簡單工廠模式(****** factory pattern),又稱為靜態工廠方法(static factory method),它屬於建立型模式。
在簡單工廠模式中,可以根據引數的不同返回不同類的例項。簡單工廠模式專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。
比如有乙個電腦商,目前生產聯想電腦,隨著業務擴充套件,他現在需要生產惠普的電腦,我們就需要乙個單獨的類來專門生產電腦,這就用到了簡單工廠模式。
下面以**為例:
介面:
package designpattern.factory.******factory.noodles;
public
inte***ce
inoodles
package designpattern.factory.******factory.noodles;
public
class
lznoodles
implements
inoodles
}
package designpattern.factory.******factory.noodles;
public
class
paonoodles
implements
inoodles
}
package designpattern.factory.******factory.noodles;
public
class
regannoodles
implements
inoodles
}
簡單工廠模式package designpattern.factory.******factory;
import designpattern.factory.******factory.noodles.inoodles;
import designpattern.factory.******factory.noodles.lznoodles;
import designpattern.factory.******factory.noodles.paonoodles;
import designpattern.factory.******factory.noodles.regannoodles;
/** * 簡單工廠模式
* 一家「簡單麵館」(簡單工廠類)
*/public
class
******noodlesfactory
}}
測試package designpattern.factory.******factory;
import designpattern.factory.******factory.noodles.inoodles;
import designpattern.factory.******factory.noodles.lznoodles;
public
class
test
}
工廠方法模式是比較複雜一點的工廠模式的體現,主要是通過建立工廠類來進行對物件的構建。
package designpattern.factory.factorymethod;
import designpattern.factory.******factory.noodles.inoodles;
/** * 工廠方法模式
*/public
inte***ce
inoodlesfactory
package designpattern.factory.factorymethod;
import designpattern.factory.******factory.noodles.inoodles;
import designpattern.factory.******factory.noodles.lznoodles;
public
class
lzinoodlesfactory
implements
inoodlesfactory
}
package designpattern.factory.factorymethod;
import designpattern.factory.******factory.noodles.inoodles;
import designpattern.factory.******factory.noodles.paonoodles;
public
class
paoinoodlesfactory
implements
inoodlesfactory
}
package designpattern.factory.factorymethod;
import designpattern.factory.******factory.noodles.inoodles;
import designpattern.factory.******factory.noodles.regannoodles;
public
class
reganinoodlesfactory
implements
inoodlesfactory
}
測試類package designpattern.factory.factorymethod;
import designpattern.factory.******factory.noodles.inoodles;
public
class
test
}
**例項:
設計模式demo
深入淺出設計模式 工廠模式
披薩店新推出了點單系統,披薩需要通過不同的製作,相同的烘焙,裁剪等工序才能完成。披薩的種類實在太多了,在構造披薩例項時,光是if else 語句就長的可怕,修改與維護更令人頭疼。披薩子類繼承實現相同的基類,通過基類呼叫不同的子類,使得 具有一定的彈性,將構造子類放入業務 導致了子類與業務 的耦合,令...
深入淺出之工廠模式
首先說說簡單工廠模式,我用現實中的汽車工廠舉例子,首先有個汽車類的介面叫做car,裡面有個開車的方法叫做drive 然後有個吉利車的類叫做jili,實現了car的介面,還有個奇瑞車的類叫做qirui,也實現了car的介面 因為都是車嘛,當然能開了 inte ce carelse if qirui e...
深入淺出設計模式 模板模式
設計模式是程式設計師必須掌握的技能,熟練應用各種設計模式,不僅可以提公升我們的編碼能力,也可以使得我們的編碼更美觀。在這裡我們來講解一下模板模式。模板模式 template pattern 中,乙個抽象類公開定義了執行它的方法的方式 模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式...