工廠模式:
存在的目的:定義乙個用於建立複雜類的物件的介面。使用工廠模式,降低了類與類之間的耦合關係。分為三種實現方式(類之間的繼承結構不同):簡單工廠模式、工廠方法模式、抽象工廠模式。主要涉及的三種類:呼叫工廠的類,工廠類,產品類。
先看乙個不適用工廠模式的類組織:
class bmw32
}class bmw52
}public
class user
}
簡單工廠模式(****** factory)
乙個工廠類生成一種產品,工廠產品一一對應。**較為簡單,就不貼了。
工廠方法模式(factory method)
乙個工廠能建立多個產品,多個產品抽象為乙個父類。
通過抽象、繼承,使得工廠可以通過父類統一返回各個子類物件。注意工廠類的create方法一般是靜態方法。返回值是物件,當然也可以返回null。
**如下:
class
bmwclass
bmw320
extends
bmw}class
bmw330
extends
bmw}class
factory
}}public
class
user
}
抽象工廠模式(abstract factory)
物件導向的開閉原則
開閉原則(open-closed principle, ocp):乙個軟體實體應當對擴充套件開放,對修改關閉。即軟體實體應盡量在不修改原有**的情況下進行擴充套件。
如果不使用抽象工廠,當增加產品時,需要修改工廠類。所以實現開閉的方法就是在工廠基礎之上抽象,抽象為介面。(當然也增加了**量)
inte***ce
factory
class
factorybmw320
implements
factory
}class
factorybmw330
implements
factory
}class
bmwclass
bmw320
extends
bmw}class
bmw330
extends
bmw}public
class
user
}
JAVA設計模式 工廠模式
一 簡單工廠。它的缺點很明顯,當需要再新增乙個whitehuman類時,需要在工廠類中修改,則 的耦合性很高。建立需要用工廠new的class public inte ce human public class blackhuman implements human public class yel...
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....