日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

iOS 设计模式之工厂模式

發布時間:2025/3/17 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS 设计模式之工厂模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

工廠模式我的理解是:他就是為了創建對象的

創建對象的時候,我們通常是alloc一個對象,假設須要創建100個這種對象,假設是在一個for循環中還好說,直接一句alloc即可了,可是事實并不那么如意,我們可能會在不同的地方去創建這個對象,那么我們可能須要寫100句alloc 了,可是假設我們在創建對象的時候。須要在這些對象創建完之后,為它的一個屬性加入一個固定的值。例如說都是某某學校的學生,那么可能有須要多些100行反復的代碼了。那么,假設寫一個-(void)createObj方法,把創建對象和學校屬性寫在這種方法里邊。那么就是會省事非常多,也就是說我們能夠alloc 創建對象封裝到一個方法里邊,直接調用這種方法就能夠了,這就是簡單工廠方法

代碼結構例如以下

Animal 類

@interface Animal :NSObject

@proterty(nonatomic,strong) NSString *name;

-(void)laugh;

@end

Dog類


@interface Dog:Animal

@end


Cat類

@interface?Cat:Animal

@end


創建對象的工廠類

.h

@interface?AnimalFactory:NSObject

+(Dog *)createDog;

+(Cat *)createCat;

@end

.m

@implementation AnimalFactory

+(Dog?*)createDog{

????Dog *dog=[[Dog alloc]init];

? ? dog.name=@“baby”;

????return dog;

}


+(Cat?*)?createCat{

? ??Cat?*cat=[[Cat?alloc]init];

????return cat;

}

Main.m文件

Dog *dog=[AnimalFactory createDog];

Cat *cat=[AnimalFactory createCat];

這是簡單工廠模式

如今創建100個Dog對象,假設這100個對象寫在程序中的不同地方,按上邊的方法是須要把Dog *dog=[AnimalFactory createDog];這一句話寫在程序中非常多不同的地方。那么如今有一個需求,就是假設須要把這些創建的100個Dog對象所有變成Cat對象,那么依照剛才的那個做法,就須要在這100句代碼中把createDog方法變成createCat方法了,這樣做還是非常復雜

那么這個時候用工廠方法模式就能解決這個難題了

工廠方法模式是為每個要創建的對象所在的類都對應地創建一個工廠

代碼例如以下

@interface?AnimalFactory:NSObject

-(Animal*)createAnimal;

@end;

Dog工廠類

@interface DogFactory:AnimalFactory;

@implementation DogFactory

-(Animal *)createAnimal{

retrurn [[Dog alloc]init];

}

@end

Cat工廠類

@interface?CatFactory:AnimalFactory;

@implementation?Cat?Factory

-(Animal *)createAnimal

retrurn [[Cat?alloc]init];

}

@end

Main.m

AnimalFactory *dogFactory=[[DogFactory alloc]init];


Animal *animal1=[dogFactory createAnimal];

[animal1 laugh];

Animal *animal2=[dogFactory createAnimal];

[animal2 laugh];

…….

Animal *animal100=[dogFactory createAnimal];

[animal100 laugh];

這樣話假設要把100個Dog改為Cat的話,僅僅須要吧DogFactory改為CatFactory就能夠了


可是工廠方法也有它的限制:

1.要創建的類必須擁有同一個父類

2.要創建的類在100個不同的地方所調用的方法必須一樣

以上這些僅僅是個人感悟,會有一些不足的地方,請大家幫忙改正。嘿嘿

總結

以上是生活随笔為你收集整理的iOS 设计模式之工厂模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。