Factory Method(工廠模式)
定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類。相對于簡單工廠方法,工廠方法模式把工廠也抽象出來,進(jìn)行接口、實現(xiàn)分離。這樣具體工廠和具體產(chǎn)品可以對應(yīng)著同時擴(kuò)充,而不需要修改現(xiàn)有邏輯。當(dāng)然,使用者也許在不同場景要在一定程度上自己對應(yīng)的工廠選擇。
VC.h
//不同的操作類有不同的工廠類,擴(kuò)展新的操作不影響現(xiàn)有操作。HCDfactoryAdd工廠類初始化HCDCalculateAdd類。其他減、乘、除一樣。
HCDfactory *factory = [[HCDfactoryAdd alloc]init];
HCDfactory *calculate = [factory createFactory];
calculate.numberA = 10;
calculate.numberB = 15;
NSLog(@"結(jié)果是%f",[calculate calculate]);
HCDfactory.h // 工廠抽象基類
@interface HCDfactory : NSObject<HCDCalculate>
-(id<HCDCalculate>)createFactory;
@end
HCDfactoryMinus.m // 子工廠抽象類
@implementation HCDfactoryMinus
-(id<HCDCalculate>)createFactory{
// 初始化生成真正的子工廠類
return [[HCDCalculateMinus alloc]init];
}
@end
HCDCalculateMinus.m // 計算類
@implementation HCDCalculateMinus
@synthesize numberA = _numberA;
@synthesize numberB = _numberB;
-(CGFloat)calculate{
return self.numberA - self.numberB;
}
@end
設(shè)計圖
