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等等。
如上图所示抽象工厂与工厂模式最大的区别为:抽象工厂一个工厂可以创建多个对象,而具体工厂一个工厂只能创建一个类。
网友评论