JAVA設計模式 工廠模式

2021-07-05 23:19:23 字數 1987 閱讀 5810

(一)簡單工廠。它的缺點很明顯,當需要再新增乙個whitehuman類時,需要在工廠類中修改,則**的耦合性很高。

//建立需要用工廠new的class

public

inte***ce

human

public

class

blackhuman

implements

human

}public

class

yellowhuman

implements

human

}//建立工廠

public

class

humanfactory

return

null;

}}//測試

public

class

simpltest

}

(二)工廠方法。所有的物件都是在同乙個等級,即所有的物件的類都是實現同乙個介面或者繼承同乙個類。然而,每個工廠只能生產乙個型別的物件。那麼,當需要同等級,不同型別的物件的時候,就需要建立不同的工廠類,來建立單一的物件。當需要再新增乙個whitehuman的時候,只需要實現human,並且新建乙個工廠,實現humanfactory,對以前的**沒任何修改,降低了**之間的耦合度。

public

inte***ce

humanfactory

public

class

blackmanfactory

implements

humanfactory

}public

class

yellowmanfactory

implements

humanfactory

}public

class

methodtest

}

(三)抽象工廠。它主要是針對不同物件等級的工廠,當blcakhuman,yellowhuman下還有男性和女性之分的時候,如果用工廠方法來建立,那麼人類,工廠之間的邏輯關係就會比較混亂。僅僅建立乙個女性的工廠,就需要乙個黑種人,黃種人的工廠來建立,這樣**很臃腫,所以用抽象工廠方法來建立。乙個抽象工廠可以可以建立多個物件。當需要新增乙個whitehuman時,需要對所有的工廠類進行新增,**間的耦合度增加了。所以在用抽象工廠之前,一定要確立需要建立的物件之間的關係,否則修改的時候會很麻煩。

//需要建立的物件之間的關係和類

public

class

blackfemale

extends

blackhuman

}public

class

blackmale

extends

blackhuman

}public

class

yellowfemale

extends

yellowhuman

}public

class

yellowmale

extends

yellowhuman

}//工廠

public

inte***ce

humanfactory

public

class

femalefactory

implements

humanfactory

@override

public human createblack()

}public

class

malefactory

implements

humanfactory

@override

public human createblack()

}public

class

abstracttest

}

java設計模式 工廠模式

工廠模式 存在的目的 定義乙個用於建立複雜類的物件的介面。使用工廠模式,降低了類與類之間的耦合關係。分為三種實現方式 類之間的繼承結構不同 簡單工廠模式 工廠方法模式 抽象工廠模式。主要涉及的三種類 呼叫工廠的類,工廠類,產品類。先看乙個不適用工廠模式的類組織 class bmw32 class b...

java設計模式 工廠模式

靜態工廠模式 為了建立物件而產生 1 有工廠類,有乙個可以根據需求返回建立的物件的方法 2 工廠類中的產生物件的方法的返回值型別是 父類的型別,產生的物件都是子類物件 3 強調 工廠類中的方法的返回值和返回的物件中存在著向上轉型的關係 public class cloth public class ...

Java設計模式 工廠模式

定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。factory method使乙個類的例項化延遲到其子類。define an inte ce for creating an object,but let subclasses decide which class to instantiate....