设为首页 加入收藏

TOP

大话设计模式-简单工厂模式(学习笔记)
2014-11-24 01:45:13 来源: 作者: 【 】 浏览:0
Tags:大话 设计模式 简单 工厂 模式 学习 笔记
此篇为学习设计模式-简单工厂模式(教材为:大话设计模式,同时很感谢作者,本书对自己帮助很大。)过程中的一些源代码、笔记和感悟,如有理解不到位或者错误之处,敬请指教。 微笑
简单工厂模式实例:计算器 设计思想 1.建立一个运算类(operation) 其中有a、b以及对a、b的赋值属性 并创建一个可以返回结果的函数(默认值可以为0,其后可以进行重构)
public class Operation
{
private double _numberA=0;
private double _numberA=0;
//通过对NumberA、B赋值达到对_numberA、B赋值的目的
public double NumberA
{
set{ _numberA=value; }
get{ return _numberA; }
}

public double NumberB
{
set{ _numberB=value; }
get{ return _numberB; }
}
//返回结果值
public virtual double GetResult()
{
double result=0;
return result;
}
} 2.创建具体的运算类(如:加减乘除)继承运算类 //加法类 class OperationAdd:Operation { public override double GetResult()
{ double result = 0; result = NumberA+NumberB;
return result
}
} //减法类 ... ... 3. 建立简单工厂类 主要功能:根据不同的操作符实例化不同的具体运算类并返回。(主要思想:继承) public class OperationFactory { public static Operation createOperate(string operate) { Operation oper = null;
switch(operate) { case "+": oper = new OperationAdd(); break;
case "-":
oper = new OperationSub();
break;
....
....
}
return oper;
}
} 4.客户端代码 主要实现声明运算类,并利用工厂类进行具体的运算类声明,设置运算数值,并通过GetResult方法返回结果 Operation oper; oper = OperationFactory.createOperate("+"); oper.NumberA=1; oper.NumberB=2; double result = oper.GetResult();

小结:简单工厂类实现了客户端对具体运算类的实例化,用户不需要关心工厂类的具体操作,只需要按照相同的方法传入不同的值进行实例,并通过方法得到结果。实现了运算类,工厂类各自分工以及客户端的分离。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇基于crawler4j、jsoup、javacsv的.. 下一篇finally块中不能使用的函数

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: