[传智播客学习日记]简单工厂模式计算器案例
2011-10-25 20:29
411 查看
这周学习了最基本的设计模式——简单工厂模式,指的是通过一个返回值为父类的静态函数,取得一个子类的对象,以实现“父类 Obj = new 子类()”方式的多态。 以下是一个简易计算器,每当扩展一个运算方法时,只需要增加一个类就可以了。 (至于里面恶心的switch块,日后再研究怎么去掉)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 工厂模式计算器 { public abstract class Cal { private double number1; public double Number1 { get { return number1; } set { number1 = value; } } private double number2; public double Number2 { get { return number2; } set { number2 = value; } } public abstract double JiSuan(); } class Add : Cal { public override double JiSuan() { return Number1 + Number2; } } class Sub : Cal { public override double JiSuan() { return Number1 - Number2; } } class Mul : Cal { public override double JiSuan() { return Number1 * Number2; } } class Program { //简单工厂模式 static Cal CreateCal(string caoZuoFu) { Cal cal = null; switch (caoZuoFu) { case"+": cal = new Add(); break; case "-": cal = new Sub(); break; case "*": cal = new Mul(); break; } return cal; } static void Main(string[] args) { Console.WriteLine("请输入操作数1:"); double d1 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("请输入操作数2:"); double d2 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("请输入运算符:"); string caoZuoFu = Console.ReadLine(); Cal myCal = CreateCal(caoZuoFu); myCal.Number1 = d1; myCal.Number2 = d2; Console.WriteLine("结果是:{0}",myCal.JiSuan()); Console.ReadKey(); } } }
相关文章推荐
- php学习日记第十一棒(计算器案例)
- [传智播客学习日记]计算字符串和文件的MD5值
- [传智播客学习日记]手写Web服务器
- Android学习-计算器案例
- [传智播客学习日记]分页查询的存储过程
- [传智播客学习日记]SQL语句一例通之二——查询、存储过程
- 传智播客学习日记Day17
- [传智播客学习日记]常用集合与Dictionary用例
- 传智播客学习日记Day19
- [传智播客学习日记]10月18日第一天正式上课
- [传智播客学习日记]SqlHelper与DataSet
- [传智播客学习日记]培训前期感受
- [传智播客学习日记]DOM中的基本window方法、属性及事件
- [传智播客学习日记]DOM中取页面元素以及正则表达式
- [传智播客学习日记]SQL语句一例通之一——增、删、改、约束
- [传智播客学习日记]Socket类的用法
- 传智播客学习日记Day20
- [传智播客学习日记]一般处理程序之文件上传
- 传智播客学习日记Day23
- [传智播客学习日记]使用事件来制作登陆验证控件