标签:工厂模式
简单工厂模式的学习
简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。
所有设计模式总结请参考:http://blog.csdn.net/chr23899/article/details/46999267
所有设计原则总结请参考:http://blog.csdn.net/chr23899/article/details/46999401
首先来看下具体的效果图
主要包括两个数 Number_X 和Number_Y 下面是四个操作 Add(+)、 Sub(-) 、 Mul(*)、 Div(/); 当用户点击其中一个操作时工厂会实例化具体的操作类型。
改应用的类图如下:
具体实现如下代码:
//操作类 public class Operation { //定义两个操作数 number_x 与 number_y private double number_x = 0; private double number_y = 0; //对 number_x 进行封装 public double Number_x { get { return number_x; } set { number_x = value; } } //对 number_y 进行封装 public double Number_y { get { return number_y; } set { number_y = value; } } //定义虚函数 public virtual double Result() { double number = 0; return number; } } //加法运算 public class Operation_Add : Operation { public override double Result() { double number = 0; number = Number_x + Number_y; return number; } } //减法运算 public class Operation_Sub : Operation { public override double Result() { double number = 0; number = Number_x - Number_y; return number; } } //乘法运算 public class Operation_Mul : Operation { public override double Result() { double number = 0; number = Number_x * Number_y; return number; } } //除法运算 public class Operation_Div : Operation { public override double Result() { double number = 0; if (Number_y == 0) return 0; number = Number_x / Number_y; return number; } } //定义一个工厂类获取具体的操作类 public class FactoryOfOperation { public static Operation GetTheOperation(string str) { Operation oper = null; switch (str) { case "add": oper = new Operation_Add(); break; case "sub": oper = new Operation_Sub(); break; case "mul": oper = new Operation_Mul(); break; case "div": oper = new Operation_Div(); break; default: break; } return oper; } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:工厂模式
原文地址:http://blog.csdn.net/chr23899/article/details/47000609