简单工厂模式--加减乘除运算
2015-08-07 16:38
309 查看
学习来自《大话设计模式》
下面基于简单的<加减乘除运算>实例来讲讲实用简单工厂模式:<备注:以后根据认识的加深,可以添加和修改内容>
需求分析:希望程序提供“加减乘除”四种功能。
功能分析:四种功能都是并列的,相互独立的。
拓展分析:很有可能拓展新的功能,比如“开根运算”。
如何设计:
1、根据“功能分析”可以将四种功能都归并一个父类出来,然后创建四个子类继承它,并且提供空的方法(OC中模拟抽象方法或者虚函数),这四个子类分别都要继承并重写实现这个空方法。这样,一个抽象的父类,四个具体实现的子类,就可以形成多态的应用:父类声明,子类创建实例。
2、然后创建一个工厂类与功能的抽象父类相互关联,然后实现根据需求,应用多态来创建功能的实例。
main方法
运行结果:
下面基于简单的<加减乘除运算>实例来讲讲实用简单工厂模式:<备注:以后根据认识的加深,可以添加和修改内容>
需求分析:希望程序提供“加减乘除”四种功能。
功能分析:四种功能都是并列的,相互独立的。
拓展分析:很有可能拓展新的功能,比如“开根运算”。
如何设计:
1、根据“功能分析”可以将四种功能都归并一个父类出来,然后创建四个子类继承它,并且提供空的方法(OC中模拟抽象方法或者虚函数),这四个子类分别都要继承并重写实现这个空方法。这样,一个抽象的父类,四个具体实现的子类,就可以形成多态的应用:父类声明,子类创建实例。
2、然后创建一个工厂类与功能的抽象父类相互关联,然后实现根据需求,应用多态来创建功能的实例。
#import <Foundation/Foundation.h> #import "OperationFactory.h" int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... Operation *op = [OperationFactory creatOperation:@"+"]; NSLog(@"简单工厂模式算出结果%f",[op getResult:18 second:8]); Operation *op2 = [OperationFactory creatOperation:@"/"]; NSLog(@"简单工厂模式算除法%f",[op2 getResult:18 second:0]); NSLog(@"Hello, World!"); } return 0; }
main方法
运行结果:
相关文章推荐
- 关于android:configChanges的属性
- 常用正则表达式
- 动态绑定TreeView
- 柱形图及饼图显示数据统计
- SQL语句优化技术分析
- 安装Hexo部署到github手记(Windows)
- Linux下源码安装软件
- lrzsz
- poj2406Power string
- mybatis 文档
- 中缀表达式求值
- Foundation Framework 文件 NSFileManager
- 导航控制器
- Mac 可设置环境变量的位置、查看和添加PATH环境变量
- jQuery实现网页抖动的菜单抖动效果
- 霓歌即时通讯中的相关专利整理(六)
- linux命令之进程级的操作
- 各种资源链接
- Avoid The Lakes (深搜dfs)
- Oracle SQL性能优化