定義:定義乙個用於建立產品物件的方法,由該工廠類根據傳入的引數,動態決定應該建立哪乙個產品類(這些產品類繼承自乙個父類或介面)的例項。
型別:建立類模式
public定義:定義乙個用於建立產品物件的介面,由子類決定例項化哪乙個類,工廠方法使乙個類的例項化延遲到其子類。inte***ce
smsservice
public
class montnetssmsservice implements
smsservice
}public
class etonenetsmsservice implements
smsservice
}public
class
smsservicefactory
return
ss; }
public
static
void
main(string args)
}
型別:建立類模式
類圖:
工廠方法模式**:
public工廠方法模式:inte***ce
smsservice
//工廠介面
public
inte***ce
smsservicefactory
public
class montnetssmsservice implements
smsservice
}public
class etonenetsmsservice implements
smsservice
}/**
* 工廠實現類 */
public
class smsservicefactoryimpl implements
smsservicefactory
return
ss; }
public
static
void
main(string args)
}
通過工廠方法模式的類圖可以看到,工廠方法模式有四個要素:
上文提到的簡單工廠模式跟工廠方法模式極為相似,區別是:簡單工廠只有三個要素,他沒有工廠介面,並且得到產品的方法一般是靜態的(紅色注釋部分)。因為沒有工廠介面,所以在工廠實現的擴充套件性方面稍弱,可以算所工廠方法模式的簡化版。
如寫的不好,歡迎拍磚!
ps:
23種設計模式(2) 工廠方法模式
定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使乙個類的例項化延遲到其子類。型別 建立類模式 類圖 工廠方法模式 inte ce iproduct class product implements iproduct inte ce ifactory class factory ...
23種設計模式(2) 工廠方法模式
定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使乙個類的例項化延遲到其子類。型別 建立類模式 類圖 工廠方法模式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 inte ceipr...
23種設計模式(2) 工廠方法模式
定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使乙個類的例項化延遲到其子類。型別 建立類模式 類圖 工廠方法模式 inte ce iproduct class product implements iproduct inte ce ifactory class factory ...