1、工廠模式
工廠模式是用來管理對象創建的,可以用此模式來實現多態。比如上圖中Factory負責Animal的創建、DogFactory負責Dog的創建、CatFactory負責Cat的創建。工廠模式一個工廠對應一個對象的創建,在使用時,客戶需要明確的知道,用哪個工廠來創建對象。如下面代碼段:
- (Animal*)createAnimalWithType:(NSString*)type
{
Animal* animal = nil;
if([type? isEqualToString:@"Animal")
{
animal = [Factory createObject];
}?
else if([type? isEqualToString:@"Dog")
{
animal = [DogFactory createObject];
}
if([type? isEqualToString:@"Cat")
{
animal = [DogFactory createObject];
}
}
2、抽象工廠模式
抽象工廠是工廠模式的高級版本,抽象工廠常用來實現框架,iOS中用抽象工廠來實現類簇,比如NSNumber、NSString、NSArray等等。
如上圖所示抽象工廠與工廠模式最大的區別為:抽象工廠一個工廠可以創建多個對象,而具體工廠一個工廠只能創建一個類。