一、什么是工厂模式?
通过面向对象的封装,继承和多态来降低程序的耦合度,将一个具体类的实例化交给一个静态工厂方法来执行。简单的理解就是把创建对象的方法封装在实例方法中,类似工厂生产直接获取产品,只需要你告诉你需要什么样的产品,这个生产过程是在工厂内完成实现的。
二、工厂模式优点
最大的优点就是简单,把创建对象方法封装,告诉需要的对象类型,直接获取到对象;还有工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责“消费”对象就可以了。而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利,有利于整个软件体系结构的优化。实现简单,且实现了客户端代码与具体实现的解耦。
三、适用场景
工厂类负责创建的对象比较少;客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心;由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用。
四、代码展示
#import "FactoryClass.h"
@interface FactoryClass ()
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *address;
@end
@implementation FactoryClass
+ (FactoryClass*)createFactoryClass{
FactoryClass *factory = [[FactoryClass alloc] init];
factory.name = @"HMC";
factory.address = @"上海";
return factory;
}
@end
创建对象
FactoryClass *factory = [FactoryClass createFactoryClass];
通过一行代码实现对象的创建初始化赋值,主要使用在工具类中。