工廠模式有三種:簡單工廠模式,抽象工廠模式和工廠方法模式。
1、簡單工廠模式
以圖形為例:
//圖形介面
inte***ce
shape()
//圓形
class
circle
implements
shape
}//矩形
class
rectangle
implements
shape
}//圖形工廠
class
shapefactory
} public
class
shapedemo
public
static
void main(string args)
}
2、抽象工廠模式
抽象工廠模式中可以包括多個抽象產品類,每個抽象產品類可以產生出多個具體產品類,乙個抽象工廠用於定義所需產品的組合形式,抽象工廠派生具體工廠類,這些具體工廠類就是簡單工廠模式中的工廠類,具體工廠類負責具體產品例項的建立:
//軟體**類
class
skin
public
void setskinfactory(skinfactory factory)
public
void showskin()
}//軟體style
inte***ce
style()
//ios style
class
iosstyle
implements
style
}//android style
class
androidstyle
implements
style
}//軟體color
inte***ce
color()
//ios color
class
ioscolor
implements
color
}//android color
class
androidcolor
implements
color
}//抽象**工廠
inte***ce
skinfactory
//ios**工廠
class
iosskinfactory
implements
skinfactory
public color getcolor()
}//android**工廠
class
androidskinfactory
implements
skinfactory
public color getcolor()
}public
class
skindemo
}
3、工廠方法模式
工廠方法中也只包含乙個抽象產品類,抽象產品類可以派生出多個具體產品類。工廠方法定義乙個用於建立產品的介面,讓子類決定例項化哪乙個類,使得類的例項化延遲到子類。
以汽車製造為例:
//汽車介面
inte***ce
icar
//賓士車
class
benzcar
implements
icar
}//寶馬車
class
bmwcar
implements
icar
}//抽象汽車工廠
abstract
class
ca***ctory
//賓士車工廠
class
benzca***ctory
extends
ca***ctory
}//寶馬車工廠
class
bmwca***ctory
extends
ca***ctory
}public
class
factorymethoddemo
}
工廠模式中,重要的是工廠類,而不是產品類。產品類可以是多種形式,多層繼承或者是單個類都是可以的。但要明確的,工廠模式的介面只會返回一種型別的例項,這是在設計產品類的時候需要注意的,最好是有父類或者共同實現的介面。
使用工廠模式,返回的例項一定是工廠建立的,而不是從其他物件中獲取的。工廠模式返回的例項可以不是新建立的,返回由工廠建立好的例項也是可以的。
三種工廠模式的區別:
簡單工廠 : 用來生產同一等級結構中的任意產品,對於增加新的產品,無能為力。
工廠方法 :用來生產同一等級結構中的固定產品,支援增加任意產品。
抽象工廠 :用來生產不同產品族(由不同產品組合成的一套產品)的全部產品,對於增加新的產品,無能為力;支援增加產品族。
Java設計模式 抽象工廠模式(factory)
目錄目的 應用例項 提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。工廠模式是最常用的設計模式之一。這種型別的設計模式輸出建立型模式,提供了一種建立物件的最佳方式。在工廠模式中建立物件是通過使用乙個共同 的介面來指向新建立的物件。乙個框架或者系統要由多個子工具系列的乙個工具來配置...
《JavaScirpt設計模式》(6) 工廠模式
1 簡介 乙個類或物件往往會包含別的物件。在建立這種物件時,你可能習慣於使用常規方法,即用new關鍵字和類建構函式。問題在於這會導致兩個類之間產生依賴性。比如 現在有幾個pc生廠商,生產台式電腦,每個台式電腦的組成部分都是cpu hardisk montherboard。生產商從各個硬體商收購硬體,...
《JavaScirpt設計模式》(6) 工廠模式
1 簡介 乙個類或物件往往會包含別的物件。在建立這種物件時,你可能習慣於使用常規方法,即用new關鍵字和類建構函式。問題在於這會導致兩個類之間產生依賴性。比如 現在有幾個pc生廠商,生產台式電腦,每個台式電腦的組成部分都是cpu hardisk montherboard。生產商從各個硬體商收購硬體,...