創(chuàng)建型之三-工廠模式

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è)計圖

簡單工廠模式 參見:簡單工廠模式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容