(一)簡單工廠。它的缺點很明顯,當需要再新增乙個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....