日期:2014-05-16 浏览次数:20993 次
刚刚开始设计模式,有了视频的基础,写代码相对容易一些,大话设计的第一章,首先就是代码规范,不论是以前学习VB还是准备考试的C++,到现在的C#,还有以后的Java等等,代码规范都是很重要的,所以从现在养成一个好习惯,规范自己的代码,培养专业素质。
跟着大鸟和小菜一步一步学习,学习了第一个模式——简单工厂模式
我们知道,简单工厂模式是类的创建模式,根据提供给它的数据返回几个可能类中的一个类的实例。
优点:工程类中包含了必要地逻辑判断,根据客户端的选择条件动态实例化相关的类,对客户端来说,去除了与具体产品的依赖。

如下例子,是一个关于加减乘除运算的简单工厂模式。结构图如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 简单工厂模式算法
{
class Program
{
//客户端代码
static void Main(string[] args)
{
Operation oper;
oper = OperationFactory.createOperate("+");//
oper.NumberA = 1;
oper.NumberB = 2;
double result = oper.GetResult();
Console.WriteLine("结果是:" + result);
}
//Operation运算类
public class Operation
{
private double _numberA = 0;
private double _numberB = 0;
public double NumberA
{
get { return _numberA; }
set { _numberA = value; }
}
public double NumberB
{
get { return _numberB; }
set { _numberB = value; }
}
public virtual double GetResult()
{
double result = 0;
return result;
}
}
class OperationAdd : Operation //加法计算
{
public override double GetResult()
{
double result = 0;
result = NumberA + NumberB;
return result;
}
}
class OperationSub : Operation //减法计算
{
public override double GetResult()
{
double result = 0;
result = NumberA - NumberB;
return result;
}
}
class OperationMul : Operation //乘法计算
{
public override double GetResult()
{
double result = 0;
result = NumberA * NumberB;
return result;
}
}
class OperationDiv : Operation //除法计算
{
public override double GetResult()
{
double result = 0;
if (NumberB == 0) //考虑除法的除数为0时没有意义
throw new Exception("除法不能为0");
result = NumberA / NumberB;
return result;
}
}//简单运算工厂类
public class OperationFacto