抽象工厂方法——设计模式系列
2012-03-31 11:22
253 查看
抽象工厂方法与工厂方法很相似,目的都是创建对象而不让客户端知晓返回了什么确切的对象。不同点是抽象工厂往往是要返回多系列的产品,而工厂方法是返回一种产品。抽象工厂是在工厂方法的基础上再创建一个父类,里面会有一个返回自身对象的factory方法,用以根据客户端传入的参数而返回具体的产品。这个父类还会定义产品中包含的各种组件。具体代码如下:
@implementation BrandingFactory
+ (BrandingFactory *) factory{
#if defined (USE_ACME)
return [[[AcmeBrandingFactory
alloc] init]
autorelease];
#elif defined (USE_SIERRA)
return [[[SierraBrandingFactory
alloc]
init] autorelease];
#else
return
nil;
#endif
}
//子类会重载各自的brandedView、brandedMainButton和brandedToolbar方法
- (UIView *) brandedView{
return
nil;
}
- (UIButton *) brandedMainButton{
return
nil;
}
- (UIToolbar *) brandedToolbar{
return
nil;
}
@end
@implementation BrandingFactory
+ (BrandingFactory *) factory{
#if defined (USE_ACME)
return [[[AcmeBrandingFactory
alloc] init]
autorelease];
#elif defined (USE_SIERRA)
return [[[SierraBrandingFactory
alloc]
init] autorelease];
#else
return
nil;
#endif
}
//子类会重载各自的brandedView、brandedMainButton和brandedToolbar方法
- (UIView *) brandedView{
return
nil;
}
- (UIButton *) brandedMainButton{
return
nil;
}
- (UIToolbar *) brandedToolbar{
return
nil;
}
@end
相关文章推荐
- 设计模式系列四 工厂(工厂方法、抽象工厂)模式介绍
- 设计模式系列---简单工厂、工厂方法、抽象工厂
- 设计模式学习之简单工厂(simple facotry)、工厂方法(actory method)、抽象工厂(abstract factory)
- 一起学Java设计模式--抽象工厂方法模式(创建型模式)
- 设计模式--简单工厂、工厂方法、抽象工厂方法
- 设计模式系列之九模板方法模式
- 深入理解JavaScript系列(41):设计模式之模板方法
- 3.偏头痛杨的常见设计模式入门系列之工厂模式篇(简单+方法+抽象)
- 设计模式之简单工厂、工厂方法和抽象工厂
- 设计模式之抽象工厂方法
- (2)Java设计模式-抽象工厂方法模式(Abstract Factory)
- 设计模式之抽象工厂方法模式
- 设计模式系列14---管流程不管细节的模板方法模式
- 从FLC中学习的设计模式系列-创建型模式(3)-工厂方法
- 设计模式之四:工厂模式(简单工厂、工厂方法、抽象工厂)
- 设计模式之抽象工厂方法模式
- 研磨设计模式之工厂方法模式-3 ――跟着cc学设计系列
- 设计模式深入浅出(一)对象创建——工厂方法,抽象工厂
- 模板方法模式----设计模式系列
- PHP设计模式系列(六):模板方法模式