日期:2014-05-16 浏览次数:20831 次
刚刚开始设计模式,有了视频的基础,写代码相对容易一些,大话设计的第一章,首先就是代码规范,不论是以前学习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