簡單 介紹一下工廠模式,是為了建立物件,也就是為了建立來自同乙個父類的不同子類物件,動態的去建立物件。
下面舉個例子:
乙個動物類:
#import
@inte***ce animal : nsobject
@property (nonatomic,strong) nsstring *name;
-(void)eat;
@end
#import "animal.h"
@implementation animal
-(void)eat
@end
他有兩個子類分別為cat 和 pig
#import "animal.h"
@inte***ce pig : animal
@end
#import "pig.h"
@implementation pig
-(void)eatanimalkind;
@inte***ce animalfactory : nsobject
-(animal*)creatanimal:(animalkind)kind;
-(animal
*)creatanimal;
#import "animalfactory.h"
#import "cat.h"
#import "pig.h"
@implementation animalfactory
-(animal*)creatanimal:(animalkind)kind
}-(animal*)creatanimal
@end
pig 工廠類
#import "animalfactory.h"
@inte***ce pigfactory : animalfactory
-(animal*)creatanimal;
@end
#import "pigfactory.h"
#import "pig.h"
@implementation pigfactory
-(animal*)creatanimal
@end
這樣通過自己的工廠類建立物件,當需要改時只需要更換工廠類物件即可,如
animalfactory *catfactory=[[catfactory alloc]init];
animal *animal1=[catfactory createanimal];
[animal1 eat];
animal *animal2=[catfactory createanimal];
[animal2 eat];
…….animal *animal100=[catfactory createanimal];
[animal100 eat];
這樣話如果要把100個cat改為pig的話,只需要吧catfactory改為pigfactory就可以;
這就是我對工廠模式使用的理解!!!
iOS 工廠模式
工廠模式我的理解是 他就是為了建立物件的 建立物件的時候,我們一般是alloc乙個物件,如果需要建立100個這樣的物件,如果是在乙個for迴圈中還好說,直接一句alloc就行了,但是事實並不那麼如意,我們可能會在不同的地方去建立這個物件,那麼我們可能需要寫100句alloc 了,但是如果我們在建立物...
iOS 工廠模式
工廠模式用於建立某個類的子類例項的 要解決的問題 在其他地方,不確定要建立那個具體的子類的時候使用 import 動物類 作為父類 inte ce animal nsobject void eat end import animal.h implementation animal void eat ...
iOS 工廠模式
一 gof是這樣描述工廠模式的 define an inte ce for creating an object,but let subclasses decide which class to instantiate.factory method lets a class defer instan...