抽象工厂(Abstract Factory)(二)
2015-01-22 20:51:25
·
作者:
·
浏览: 25
fter loading the view, typically from a nib.
// 客户端加载视图
BrandFactory* brand = [BrandFactory fatoryWithName:@"Serra"];
//BrandFactory* brand = [BrandFactory fatoryWithName:@"Acme"];
UIView* brandView = [brand brandView];
brandView.frame = self.view.frame;
[self.view addSubview:brandView];
UIButton* brandButton = [brand brandMainButton];
brandButton.frame = CGRectMake(60, 100, 200, 100);
[self.view insertSubview:brandButton aboveSubview:brandView];
UIToolbar* brandToolbar = [brand brandToolbar];
brandToolbar.frame = CGRectMake(0, brandView.frame.size.height-40, brandView.frame.size.width, 40);
[self.view insertSubview:brandToolbar aboveSubview:brandView];
}使用抽象工厂的设计模式后,通过工厂的封装,客户端不再需要知道产品的具体细节,实现内部的黑盒透明化,同时,如果新增了产品后,客户端的代码调用改动会很小,只需要指定名字即可。如果不适用抽象工厂,那么常规的方法是这里需要自己手动创建每个产品对象,需要了解产品的具体细节,同时如果要修改为其他产品的话,要修改大量代码,可维护性和代码的重用性大大降低。因此,抽象工厂模式是好的,工厂设计模式是好的。
总结
抽象工厂以及其他的工厂模式是一种比较常见以及简单的编程设计模式,他也是最基本的设计模式,因为他涉及到许多类型对象的创建。在创建对象的时候,最好使用设计模式封装对象,使得对象抽象出来,具体细节得到隐藏。