工厂(Factory)角色:接受客户端的请求,通过请求负责创建相应的产品对象。
抽象产品(Abstract Product)角色:是工厂模式所创建对象的父类或是共同拥有的接口。可是抽象类或接口。
具体产品(ConcreteProduct)对象:工厂模式所创建的对象都是这个角色的实例。
简单工厂模式:简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。
工厂模式:抽象了工厂接口的具体产品,应用程序的调用不同工厂创建不同产品对象。(抽象产品)
抽象工厂模式:在工厂模式的基础上抽象了工厂,应用程序调用抽象的工厂发发创建不同产品对象。(抽象产品+抽象工厂)
简单工厂模式
SFOperation *sfOperation = [SFFactory operationBreakfast:SFFactoryProductTypeMantou];//只有一个简单的工厂去生产产品。不好扩展产品
[sfOperation productBreakfast];//产品自身的逻辑
NSLog(@"生产产品:%@",sfOperation.product);
工厂模式
//馒头
FFOperation *ffOperation = [FFactoryMantou createOperation];//不同工厂生产不同产品
[ffOperation productBreakfast];
NSLog(@"生产产品:%@",ffOperation.product);
//油条
FFOperation *ffOperation = [FFactoryMantou createOperation];//不同工厂生产不同产品
[ffOperation productBreakfast];
NSLog(@"生产产品:%@",ffOperation.product);
抽象工厂模式
AFFactory *afFactory = [AFFactory factoryWithType:AFFactoryProductTypeMantou];//抽象工厂 直接生产不同产品
AFOperation *afOperation = [afFactory createProduct];
[afOperation productBreakfast];
NSLog(@"生产产品;%@",afOperation.product);












网友评论