码迷,mamicode.com
首页 > 其他好文 > 详细

简单工厂

时间:2017-12-13 23:43:58      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:技术   virt   实体   简单工厂   efault   耦合度   void   cto   switch   

简单工厂的意图在于:抽象出了公共部分,独立出每一个方法继承自父类,降低每一个方法之间的耦合度,并且防止了新增or修改方法类带来的代码错误,

前端只需要传入的运算规则即可得到结果

抽象实体

技术分享图片
 1 public class Operation
 2     {
 3         public double numberA { get; set; }
 4         public double numberB { get; set; }
 5         public virtual double GetResult() {
 6             double result = 0;
 7             return result;
 8         }
 9         
10     }
Operation

独立的方法实现

技术分享图片
 1 public class OperationAdd:Operation
 2     {
 3         public override double GetResult()
 4         {
 5             double result=0d;
 6             result = numberA + numberB;
 7             return result;
 8         }
 9     }
10 
11     public class OperationSub : Operation
12     {
13         public override double GetResult()
14         {
15             double result = 0d;
16             result = numberA - numberB;
17             return result;
18         }
19     }
Operations

工厂构造器

技术分享图片
 1 public class OperationFactory
 2     {
 3         public static Operation createOperation(string operat) {
 4             Operation oper = null;
 5             switch (operat)
 6             {
 7                 case "+":
 8                     oper = new OperationAdd();
 9                     break;
10                 case "-":
11                     oper = new OperationSub();
12                     break;
13 
14                 default:
15 
16                     break;
17             }
18             return oper;
19         }
20     }
OperationFactory

UI界面

技术分享图片
 1 static void Main(string[] args)
 2         {
 3             Operation oper = null;
 4             oper = OperationFactory.createOperation("+");
 5             oper.numberA = 2;
 6             oper.numberB = 10;
 7             double result=oper.GetResult();
 8             Console.WriteLine(result);
 9             Console.ReadKey();
10         }
View Code

 

简单工厂

标签:技术   virt   实体   简单工厂   efault   耦合度   void   cto   switch   

原文地址:http://www.cnblogs.com/cuijl/p/8034304.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!