工廠模式,顧名思義就是像工廠一樣生產物件,我們知道一家生產筆的工廠,不僅僅只生產鉛筆,還有原子筆和鋼筆等型別。同理,我們採用工廠類來獲取各物件。
以工廠生產筆為例,物件是筆,類penfactory是生產筆的工廠。
建立所有筆的父類pen
,有乙個通用的方法write()
,因為每一種筆寫的內容不容,方法的實現不同,所以寫成抽象的類和方法。
public
abstract
class pen
接著建立鉛筆、毛筆、原子筆類,繼承父類pen,並重寫父類的抽象方法。
public
class
pencil
extends
pen}
public
class
bellpen
extends
pen}
public
class
brushpen
extends
pen}
在工廠類中我們獲取各種筆的物件,根據引數的不同生產不同的物件。
public
class penfactory
public
static pen pen ;
public
static pen getinstance(string type)
return pen;
}}
這就是普通的工廠模式,但是這種有個缺點:如果有新的筆,那麼我們還需要建立新的類和修改工廠類,這違反了「物件導向」的原則,下面就是我們要說的工廠方法模式。
物件導向的原則:
不修改,只增加或刪除。這樣各個模組不影響。
java設計模式 工廠模式一
工廠方法模式所包含的成員 1 抽象產品 product 抽象類或者介面,用於定義具體產品必須實現的方法 2 具體產品 concreteproduct 如果product是乙個抽象類,那麼具體產品是product的子類 如果product是乙個介面,那麼具體產品是實現該介面的類。注 一般情況下,乙個抽...
java設計模式 工廠模式
工廠模式 存在的目的 定義乙個用於建立複雜類的物件的介面。使用工廠模式,降低了類與類之間的耦合關係。分為三種實現方式 類之間的繼承結構不同 簡單工廠模式 工廠方法模式 抽象工廠模式。主要涉及的三種類 呼叫工廠的類,工廠類,產品類。先看乙個不適用工廠模式的類組織 class bmw32 class b...
JAVA設計模式 工廠模式
一 簡單工廠。它的缺點很明顯,當需要再新增乙個whitehuman類時,需要在工廠類中修改,則 的耦合性很高。建立需要用工廠new的class public inte ce human public class blackhuman implements human public class yel...