一,概念
从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(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) //返回类型是指针
主要构成结构为: 操作运算符基类:定义操作必须的运算符和操作数,提供设定操作数和返回操作数方法
四种运算子类:继承操作运算符基类,并实现每种运算符下的结果
运算工厂:根据传递参数,生成不同运算符子类返回相应结果
客户端:建立操作符基类,根据工厂生成子类,然后返回结果。
分享到:
相关推荐
设计模式 简单工厂模式 简易计算器代码 设计模式 面向对象 计算器 java
简单工厂模式: 具体实现了一个计算器的代码,首先计算器应该具备对两个数字进行运算的功能,而运算的方法可以有很多种(最基础的有加,减,乘,除), 并且代码易于移植,这里是个console的应用台界面,也应该可以...
设计模式简单工厂模式PPT学习教案.pptx
设计模式简单工厂模式课件PPT学习教案.pptx
Java设计模式之一简单工厂模式(SimpleFactory)源码
设计模式之工厂方法、简单工厂、抽象工厂
设计模式1:简单工厂设计模式代码,工厂设计模式分析可以参考本人博客http://blog.csdn.net/lvsaixia。
java设计模式 简单工厂模式uml类图,一张图就让你秒懂简单工厂模式
java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂
设计模式之简单工厂模式案例
工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。
c++设计模式-创建型模式-工厂方法模式-最简单的源码-qt工程
设计模式之工厂模式Java实现和类设计图,包括简单工厂模式、工厂方法模式和抽象工厂模式
设计模式之简单工厂模式,有文档解说,有代码案例。很适合初学者学习!
ios 简单工厂设计模式
Java 设计模式 总结了经典设计模式之一的简单工厂设计模式,内涵类图,UML介绍.
设计模式(简单工厂模式_排序)手写的代码,自己写博客用
这个是http://blog.csdn.net/dawanganban/article/details/9875873博客中java设计模式的源代码。下载前请先看《设计模式——简单工厂》一文。
这是设计模式中简单工厂设计模式的源代码,工程中以一个计算器的示例来体现简单工厂模式的精髓。简单工厂模式主要解决创建对象的问题。
单例设计模式、工厂设计模式和抽象工厂模式是常见的软件开发设计模式。这些设计模式提供了一些有用的思想和实现方式,可以帮助开发人员在设计和实现复杂的软件系统时,更加灵活和高效地进行编程。 单例设计模式是一...