美文网首页
工厂模式

工厂模式

作者: 春风依旧 | 来源:发表于2018-12-13 20:58 被阅读9次

工厂模式是23种设计模式的一种,这个运用比较广泛,像友盟,shareSDK之类的都是采用的这种方式,很方便的为我们提供一种创建对象的方式。

一、工厂模式概念:

        定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色情况下的情况下引进新的产品.

二、简单工厂模式

         说一下我对它的理解:它是运用了类的继承,创建一个拥有某些共同属性的类的实例对象,每个类都可以为自己添加私有的方法;创建对象的方法放在一个工厂类里面,方便批量进行实例对象的创建。具体如下实现:

  • 对象类
//Animal类
@interface Animal :NSObject

@proterty(nonatomic,strong) NSString *name;
-(void)laugh;
@end

//Dog类
@interface Dog:Animal

@end

//Cat类
@interface Cat:Animal

@end

  • 创建对象的工厂类
@interface AnimalFactory:NSObject

+(Dog *)createDog;

+(Cat *)createCat;

@end

@implementation AnimalFactory

+ (Dog  * ) createDog {
    Dog * dog = [[Dog alloc] init];
    dog.name = @“baby”;
    return dog;
}

+ (Cat  * ) createCat {
    Cat  * cat = [[Cat alloc] init];
    return cat;
}

  • 在控制器的.m中写如下代码即可创建对象
Dog *dog=[AnimalFactory createDog];
Cat *cat=[AnimalFactory createCat];

三、工厂方法模式

        现在有个需求:创建100个Dog对象,如果这100个对象卸载程序中的不同地方,则需要这样写

Dog *dog=[AnimalFactory createDog];

如果有一天,创建的对象不是100个Dog,而是Cat对象;那么需要把这个100个创建方法都要替换,这样做既费时又很累,聪明的程序员们就提出了工厂方法进行解决这个难题。

  • 创建对象的工厂类
@interface AnimalFactory:NSObject

-(Animal*)createAnimal;

@end
  • Dog工厂类
@interface DogFactory:AnimalFactory;

@end 

@implementation DogFactory

-(Animal *)createAnimal{
    retrurn [[Dog alloc]init];
}

@end

  • Cat工厂类

@interface CatFactory:AnimalFactory;

@implementation Cat Factory

-(Animal *)createAnimal
    retrurn [[Cat alloc]init];
}

@end

  • 在Main.m中进行对象的创建

AnimalFactory *dogFactory=[[DogFactory alloc]init];

Animal *animal1=[dogFactory createAnimal];
[animal1 laugh];

Animal *animal2=[dogFactory createAnimal];
[animal2 laugh];

…….

Animal *animal100=[dogFactory createAnimal];

[animal100 laugh];

四、抽象工厂模式

相关文章

  • 常用设计模式

    设计模式 工厂模式 工厂模式思路上分:简单工厂模式,工厂模式, 抽象工厂模式// 抽象工厂模式可以代替工厂模式,做...

  • 工厂模式

    工厂模式细分三种:简单工厂模式、工厂模式、抽象工厂模式。 工厂模式相当于抽象了简单工厂模式的工厂类,而抽象工厂模式...

  • 工厂模式

    工厂模式 就是工厂---生产-->产品 在设计模式中,分为 简单工厂模式, 工厂方法模式,抽象工厂模式. 工厂模式...

  • 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

    找女朋友之简单工厂模式,工厂模式,抽象工厂模式 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

  • 【设计模式】- 工厂模式

    工厂模式分为三种:简单工厂模式、工厂方法模式和抽象工厂模式。 工厂模式:靠工厂生产对象 简单工厂模式中只有一个工厂...

  • 工厂模式

    工厂模式包含三种模式:简单工厂模式、工厂方法模式和抽象工厂模式。 简单工厂模式 定义简单工厂模式:由一个工厂类根据...

  • Java设计模式——工厂模式

    工厂模式简单工厂模式工厂方法模式抽象工厂模式 1.简单工厂模式 1.基本介绍1)简单工厂模式也叫静态工厂模式,是属...

  • 设计模式-3种工厂模式

    工厂模式包括:简单工厂模式,工厂方法模式,抽象工厂模式 简单工厂模式 工厂方法根据参数直接创建实例:工厂->产品 ...

  • 设计模式-工厂模式

    工厂模式概念 实例化对象,用工厂方法代替new操作。工厂模式包括工厂方法模式和抽象工厂模式。抽象工厂模式是工厂模式...

  • 第一章2.0工厂- 基础类准备

    2.1工厂-简单工厂模式2.2工厂-工厂方法模式2.3工厂-抽象工厂模式

网友评论

      本文标题:工厂模式

      本文链接:https://www.haomeiwen.com/subject/gucihqtx.html