簡單工廠模式中須要如下三種東西:spa
1.工廠類:負責建立對象的類;對象
2.用戶類:使用產品的用戶;接口
3.產品:包括產品基類和產品子類。產品
註釋:it
工廠類:根據傳入的參數不一樣,生成對應的產品子類,輸出產品基類;變量
產品基類:空殼而已,有空殼方法和屬性接口;方法
產品子類:具體方法實現和屬性。註釋
具體:cas
用戶類中使用產品:生成
1.導入工廠類和產品類(至關於用戶有某個需求,因而肯定這個需求要選擇哪一種大概產品,而後再選擇一家工廠來生成這種產品);
2.產品基類 *變量 = [工廠類 靜態方法生產產品:不一樣產品對應參數];
[變量 產品基類實例方法];
BaseProduct *product = [Factory creatProduct:type];
[product giveMe];
工廠類中如何生成不一樣產品:
1.導入產品基類和產品子類;
2.根據不一樣產品參數輸出不一樣產品
+(BaseProduct*)creatProduct:(ProductType)type {
BaseProduct *product = nil;
switch(type) {
case 1:
product = [[產品子類 alloc] init];
break;
}
return product;
}
產品基類和產品子類:
產品基類中,有一個空殼的giveMe方法
- (void)giveMe {}
就這樣,徹底空殼,另外,能夠還有屬性,固然,有了屬性也只是給子類具體使用。
產品子類中,就能夠對giveMe方法進行按照本身的需求重寫,好比:
- (void)giveMe{NSLog(@"子類A");}