`

【设计模式】简单工厂模式

 
阅读更多

一,概念

从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

二,实例

请用C++、Java、C#任意一种面向对象语言实现一个计算器控制台程序


三,菜鸟实现




分析:程序实现还算可以,注意到了: 1)除数为0的判断,和异常的检查

2)switch的应用,在C/C++中switch之接受 char 和 int 类型。其他的类型只能用if


存在的问题: 1)首先没有按照面向对象的设计方式实现。

2)不容易维护

3)不容易复用:控制台改成图形界面?只能复制代码,然后更改代码。不能直接调用代码类

4)不容易扩展:如果要添加 sqrt( ) 开方?如何实现?

5)灵活性不好:操作类和界面类没有分开。

解决办法:通过面向对象的三大技术封装、继承和多态


首先应用封装,让业务逻辑、界面逻辑分开,降低耦合度。

菜鸟进阶一:


试想,如果想增加一个sqrt()。是不是还是要阅读源代码,然后在相应位置添加实现sqrt()的源代码,才可以实现。

如何才能实现松耦合呢?

采用面向对象技术的继承就可以。

菜鸟进阶二



整个程序结构说明:

class Operation //操作运算基类 ,包含运算所必须的操作运算符和操作数,提供设定操作数和返回操作数方法

class OperationAdd :public Operation //加法运算子类,设定运算结果

class OperationSub :public Operation //减法运算子类

class OperationMul :public Operation //乘法运算子类

class OperationDiv :public Operation //除法运算子类

class OperationFactory //运算工厂类 ,负责生成各个操作运算符的类。


【注意】Operation *createOperate(char operate) //返回类型是指针



主要构成结构为: 操作运算符基类:定义操作必须的运算符和操作数,提供设定操作数和返回操作数方法

四种运算子类:继承操作运算符基类,并实现每种运算符下的结果

运算工厂:根据传递参数,生成不同运算符子类返回相应结果

客户端:建立操作符基类,根据工厂生成子类,然后返回结果。





分享到:
评论

相关推荐

    设计模式 简单工厂模式 简易计算器代码

    在“设计模式 简单工厂模式 简易计算器代码”这个主题中,我们将探讨如何使用简单工厂模式来实现一个简单的计算器。计算器是我们日常编程中常见的例子,因为它包含了多个操作,如加、减、乘、除等,这为我们展示了...

    c++ 设计模式 简单工厂模式

    简单工厂模式: 具体实现了一个计算器的代码,首先计算器应该具备对两个数字进行运算的功能,而运算的方法可以有很多种(最基础的有加,减,乘,除), 并且代码易于移植,这里是个console的应用台界面,也应该可以...

    Java设计模式简单工厂模式

    **Java设计模式——简单工厂模式** 简单工厂模式是软件设计模式中的创建型模式之一,它提供了一种创建对象的最佳方式。在简单工厂模式中,一个专门的类(工厂类)负责创建其他类的实例,客户端通过工厂类来获取所需...

    工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式

    工厂模式是一种常用的软件设计模式,它是创建型设计模式的一种,主要解决对象的创建问题,将对象的创建过程封装起来,使得创建过程独立于使用过程。这样可以提高代码的可复用性和灵活性,同时降低了系统的耦合度。...

    uml 文档 简单工厂模式

    UML文档-简单工厂模式 简单工厂模式是一种专门负责将大量有共同接口的类实例化的模式,而不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。 简单工厂模式的...

    设计模式单例模式和工厂模式综合应用

    工厂模式分为简单工厂模式、工厂方法模式和抽象工厂模式,根据具体需求选择合适的实现。 在这个项目中,单例模式可能被用来创建一个工厂类,这个工厂类负责生产特定类型的手机(或其他产品)。这样的设计可以确保在...

    简单工厂模式-工厂方法模式-抽象工厂模式

    在软件设计模式中,工厂模式是一组非常基础且实用的设计模式,主要分为简单工厂模式、工厂方法模式和抽象工厂模式。这些模式都是为了解决对象创建的问题,通过封装对象的创建过程,使得代码更加灵活,易于扩展和维护...

    三种设计模式(简单工厂_工厂方法_抽象工厂)

    简单工厂模式是一种创建型设计模式,它提供了一个静态方法来创建对象,而无需暴露创建逻辑。这个静态方法根据输入参数来决定返回哪个类的实例。这种方式将对象的创建与使用分离,使得代码更加简洁,易于理解和使用。...

    设计模式简单工厂模式PPT学习教案.pptx

    简单工厂模式是软件设计模式中的一种创建型模式,它的主要目的是通过一个中心化的工厂类来创建对象,使得客户端代码在需要实例化某个类时,无需直接进行实例化操作,而是通过调用工厂类的静态方法来获取所需的产品...

    深入浅出设计模式之工厂模式

    根据提供的标题“深入浅出设计模式之工厂模式”与描述“将《Head First 设计模式》(中文版)按章节进行了分割,每章一个文件,方便大家下载”,我们可以推测出这部分内容主要关注的是设计模式中的工厂模式。...

    设计模式简单工厂

    简单工厂设计模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在简单工厂模式中,当创建对象时,我们不会对客户端暴露创建逻辑,而是通过一个公共接口来指向新创建的对象。这种方式有助于我们将对象的...

    c++设计模式-工厂方法模式

    工厂方法模式是面向对象设计模式中的一个创建型模式,它提供了一种封装对象创建过程的方式,使得具体的对象创建过程可以延迟到子类中进行。在C++编程中,工厂方法模式广泛应用于各种软件设计中,因为它能有效地解耦...

    设计模式之工厂方法、简单工厂、抽象工厂

    工厂方法、简单工厂和抽象工厂是创建型设计模式的三种不同形式,它们都关注于对象的创建过程,但各有其特点和适用场景。 1. **工厂方法(Factory Method)**: 工厂方法模式定义了一个创建对象的接口,但让子类...

    设计模式简单工厂模式课件PPT学习教案.pptx

    简单工厂模式是软件设计模式中的一种创建型模式,它的主要目的是通过一个中心化的工厂类来创建对象,使得客户端在使用时无需直接实例化具体的产品类,而是通过传递参数给工厂,由工厂根据参数来决定创建哪个具体产品...

    java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂

    MVC模式使得用户界面与数据逻辑分离,单例模式保证关键资源的唯一访问点,代理模式在访问对象前后增加额外的功能,工厂模式将对象创建与使用分离,简单工厂模式为对象创建提供一个简单便捷的接口。通过这些模式,...

    python 项目里常用的设计模式 组合模式 策略模式 抽象工厂 代理模式 工厂模式 观察者模式 简单工厂 建造者模式 模板模式

    python 项目里常用的设计模式 单例模式 组合模式 策略模式 抽象工厂 代理模式 工厂模式 观察者模式简单工厂 建造者模式 模板模式 桥接多维度 桥接模式 适配器模式 外观模式 享元模式 责任链组合模式

    设计模式(简单工厂模式_排序)手写代码.rar

    简单工厂模式是软件设计模式中的一种创建型模式,它提供了一种创建对象的最佳方式。在简单工厂模式中,一个工厂类负责创建所有相关的或者相互依赖的对象,无需客户端代码指定具体的类,而是通过工厂方法来创建实例。...

    设计模式——简单工厂模式

    **设计模式——简单工厂模式** 简单工厂模式是创建型设计模式的一种,它提供了一种创建对象的最佳方式。在简单工厂模式中,一个专门的类(称为工厂类)负责创建对象,客户端无需知道所创建的对象的具体类,只需要...

    工厂设计模式简单实例

    在这个名为"工厂设计模式简单实例"的资料中,我们可以期待看到一个基础的工厂模式实现。 工厂模式的核心思想是定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪一个类。这样,客户端在使用时无须知道...

    简单工厂模式uml类图

    java设计模式 简单工厂模式uml类图,一张图就让你秒懂简单工厂模式

Global site tag (gtag.js) - Google Analytics