iOS设计模式之简单工厂模式

简单工厂模式

基本理解

  • 到底要实例化谁,将来会不会增加实例化的对象,比如计算器增加开根运算,这是很容易变化的地方,应该考虑用一个单独的类来做这个创造实例的过程,这就是工厂。
  • 通过使用工厂模式,我们可以降低耦合度,做到对扩展开放,对修改封闭。如果需要再增加其他的方法,我们只需要重新构建一个子类即可。

例子

这里简单介绍一下。
比如我们要做一个计算器,我们会写几个运算类,比如加法、乘法、除法和减法。但是我们在使用这些运算类的时候,我们没有必要去在客户端每次用switch判断或者if判断。我们只需要传入运算符即可:

Operation oper;
oper = OperationFactory.createOperate("+");
oper.number1 = 1;
oper.number2 = 2;
double result = oper.getResult();

因此我们用到的OperationFactory就是一个工厂,它用来加工生成不同的运算。简单看一下OperationFactory里面都写了什么。

-(Operation *)createOperate:(NSString *)operate
{
    Operation oper;
    switch (operate) {
        case [operate isEqualToString:@"+"]:
            oper = [[OperationAdd alloc] init];
            break;
        case [operate isEqualToString:@"-"]:
            oper = [[OperationSub alloc] init];
            break;
        case [operate isEqualToString:@"*"]:
            oper = [[OperationMul alloc] init];
            break;
        case [operate isEqualToString:@"/"]:
            oper = [[OperationDiv alloc] init];
            break;
        default:
            break;
    }
    return oper;
}

这只是大概的代码。其中Operation是OPerationAdd、OperationSub等得父类,然后通过参数operate来生成不同的子类,然后再计算,这就是工厂模式。

时间: 2024-10-21 12:47:40

iOS设计模式之简单工厂模式的相关文章

php设计模式之简单工厂模式详解_php技巧

本文以实例形式较为详细的介绍了PHP设计模式的简单工厂模式,对于进行PHP程序设计来说有很好的借鉴作用.具体如下: 一.概念 简单工厂模式 [静态工厂方法模式](Static Factory Method) 是类的创建模式 工厂模式的几种形态: 1.简单工厂模式(Simple Factory)又叫做 静态工厂方法模式(Static Factory Method) 2.工厂方法模式(Factory Method)又叫做 多态性工厂模式(Polymorphic Factory) 3.抽象工厂模式(A

设计模式: 简单工厂模式

引入: 在我们的思维中,会有一种习惯,当遇到某种问题时,会直接考虑用最直接的语言去去实现它,而往往忽略了整个程序的可维护性.可扩展性. 比如,我们写一个基本的计算器功能,要求能计算四则运算,大家或许会直接写: public class ProgramDemo{ public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(

C#设计模式(2)——简单工厂模式

原文:C#设计模式(2)--简单工厂模式 一.引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式--简单工厂模式. 二.简单工厂模式的介绍 说到简单工厂,自然的第一个疑问当然就是什么是简单工厂模式了? 在现实生活中工厂是负责生产产品的,同样在设计模式中,简单工厂模式我们也可以理解为负责生产对象的一个类, 我们平常编程中,当使用"new"关键字创建一个对象时,此时该类就依赖与

java设计模式之简单工厂模式

在编写一个计算器程序时,可以将业务逻辑和显示分离,业务逻辑封装为一个类(封装):如果要新添加一种运算,可以先创建一个Operation的基类,然后各种运算从Operation类继承,并实现GetResult()虚函数,这时添加新的运算只需要派生一个新的类,即不需要之前的运算参与编译.如何让计算器知道我是希望使用哪种运算呢?应该考虑单独的类来做这个创造实例的过程,这就是工厂.创建一个OperationFactory类,传入参数,函数createOperate就可以实例化出合适的对象. Java代码

设计模式-简单工厂模式(SimpleFactory-C#)

设计 <java与模式> 上面那本书上的例子举的是园丁和果园的例子,学习设计模式最好在生活中自己找个例子 实践一下,下面是我自己的一个例子,是讲快餐店的例子,快餐店提供很多食物,比如 面条,米饭,面包.首先定义了一个Food接口,然后这些食物都从它来继承,定义了一个大厨 他包办所有食物的制作工作,这就是我所理解的简单工厂模式的概念,下面是源代码: using System; namespace SimpleFactoryPattern{ /// <summary> /// 简单工厂

设计模式之简单工厂模式

设计模式,六大设计原则,类的特性 总纲 http://blog.csdn.net/fenglailea/article/details/52733435 风.fox 简单工厂模式(Simple Factory) 简单工厂模式就是工厂方法模式的缩小版 通用类图 组成 1.工厂类:这是本模式的核心,含有一定的商业逻辑和判断逻辑.在java中它往往由一个具体类实现. 2.抽象产品:它一般是具体产品继承的父类或者实现的接口.在java中由接口或者抽象类来实现. 3.具体产品:工厂类所创建的对象就是此角色

大话设计模式之简单工厂模式

       从设计模式的类型来说,简单工厂模式是属于创建性模式,又叫做静态工厂方法模式,但不属于23中GOF设计模式之一,简单的工厂模式是由一个工厂对象决定创建出哪一种产品类的实例,简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现.         那么到底什么是简单工厂模式?我们中午在中快食堂吃饭,中快食堂满足了我们的需求,这里的中快食堂就是一个简单的工厂,在现实生活中工厂是负责生产产品的,,同样在设计模式中,简单工厂模式我们也可以理解为负责生产对象的一个

java设计模式之简单工厂模式_java

在编写一个计算器程序时,可以将业务逻辑和显示分离,业务逻辑封装为一个类(封装):如果要新添加一种运算,可以先创建一个Operation的基类,然后各种运算从Operation类继承,并实现GetResult()虚函数,这时添加新的运算只需要派生一个新的类,即不需要之前的运算参与编译.如何让计算器知道我是希望使用哪种运算呢?应该考虑单独的类来做这个创造实例的过程,这就是工厂.创建一个OperationFactory类,传入参数,函数createOperate就可以实例化出合适的对象. Java代码

设计模式之简单工厂模式(Simple Factory Pattern)

设计 工厂模式 THE FACTORY PATTERN 在面向对象(OO)程序中,我们经常看到的一种模式就是简单工厂模式(Simple Factory Pattern).简单工厂模式根据提供给它的数据,返回几个可能类中的一个类的实例.通常它返回的类都有一个共同的父类和共同的方法,但每个方法执行的认为不同,而且根据不同的数据进行了优化.简单工厂模式实际上不属于23个GOF模式,但它可以作为工厂方法模式(FACTORY Method)的一个引导. 工厂模式如何工作 为了便于理解简单工厂模式,可以看下