C#设计模式之工厂模式(1)
2013-01-29 13:35
260 查看
使用设计模式必须首先要理解对象、继承和接口,一般情况下我们创建对象时采用new的方式,这和程序如何创建对象有关。再进一步思考,很多时候根据程序的需求不同我们要创建对象,因而我们可以将创建过程抽象成一个专门的类中,这样程序就会更灵活,更通用。
我们可以利用一个共同的基类以完全通用的方式与这些提供程序相关的对象交互。工厂模式里提供了一个简单的决策类,它根据提供的数据返回基类中的多个子类的一个。
1. 简单工厂模式:它的运行一般是根据提供的数据,返回已定义的几个类中的一个类中的实例。通常它返回的类中都有一个共同的父类和方法,但在每个子类中,该方法的所要执行的任务是不同的,而且根据不同的数据进行了优化。下面是示意图
示例代码,这是一个计算器的范例
调用简单工厂
我们可以利用一个共同的基类以完全通用的方式与这些提供程序相关的对象交互。工厂模式里提供了一个简单的决策类,它根据提供的数据返回基类中的多个子类的一个。
1. 简单工厂模式:它的运行一般是根据提供的数据,返回已定义的几个类中的一个类中的实例。通常它返回的类中都有一个共同的父类和方法,但在每个子类中,该方法的所要执行的任务是不同的,而且根据不同的数据进行了优化。下面是示意图
示例代码,这是一个计算器的范例
public class Operation { public double NumberA { get; set; } public double NumberB { get; set; } public virtual double GetResult() { double result = 0; return result; } } public class OperationAdd : Operation { public override double GetResult() { double result = NumberA + NumberB; return result; } } public class OperationSub : Operation { public override double GetResult() { double result = NumberA - NumberB; return result; } } public class OPerationMulti : Operation { public override double GetResult() { double result = NumberA * NumberB; return result; } } public class OperationDiv : Operation { public override double GetResult() { double result = NumberA / NumberB; return result; } }创建简单工厂
public static Operation Creatoperation(string operate) { Operation oper = null; switch (operate) { case "+": oper = new OperationAdd(); break; case "-": oper = new OperationSub(); break; case "*": oper = new OPerationMulti(); break; case "/": oper = new OperationDiv(); break; default: break; } return oper; }
调用简单工厂
Operation oper = new Operation(); oper=SimpleFactory01.Creatoperation("/"); oper.NumberA = 10; oper.NumberB = 20; Console.WriteLine(oper.GetResult()); Console.ReadLine();
相关文章推荐
- C#设计模式之抽象工厂
- C#设计模式之工厂模式(Factory)--01 简单工厂(Simple Factory)
- C# 设计模式之 工厂模式
- C#面向对象设计模式纵横谈(四) --- Factory Method 工厂方法(创建型模式)
- c#设计模式之简单工厂模式
- C#设计模式之工厂模式(Factory)--02 工厂方法模式(Factory Method)
- C#设计模式--简单工厂模式
- C#设计模式--简单工厂
- C#设计模式<二>工厂模式
- C# 工厂设计模式
- C#设计模式之工厂模式(Factory)--03 抽象工厂模式(Abstract Factory)
- C#设计模式--简单工厂模式
- 实例解析C#设计模式编程中简单工厂模式的使用
- C#描述设计模式(2):工厂模式学习心得及我的项目应用
- [C#]设计模式-工厂方法-创建型模式
- c#设计模式-工厂方法
- C# 设计模式 之 工厂方法
- C#设计模式之工厂模式(Factory)--04 抽象工厂模式中访问具体产品类的属性
- c#设计模式--工厂方式模式
- C# 设计模式巩固 - 简单工厂模式