工廠模式 iOS

2021-07-09 20:19:09 字數 1488 閱讀 7235

簡單 介紹一下工廠模式,是為了建立物件,也就是為了建立來自同乙個父類的不同子類物件,動態的去建立物件。

下面舉個例子:

乙個動物類:

#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...