静态工厂模式
2015-11-28 15:43
363 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 简单工厂模式 { //抽象类相当于接口, //抽象方法没有实现体,子类必须实现, //虚方法有实现体,子类可以选择性重写 public abstract class Operator { public int NumberA { get; set; } public int NumberB { get; set; } public abstract double GetResult(); //有虚方法就一定定义为抽象类 } public class operatorAdd : Operator { public override double GetResult() { return NumberA + NumberB; } } public class operatorSub : Operator { public override double GetResult() { return NumberA - NumberB; } } public class operatorMul : Operator { public override double GetResult() { return NumberA * NumberB; } } public class operatorDiv : Operator { public override double GetResult() { return NumberA/NumberB; } } //静态工厂类,由客户端输入决定实现那个子类 class operatorFactory { public static Operator createOperator(string type) { Operator op = null; switch (type) { case "+": op= new operatorAdd(); break; case "-": op = new operatorSub(); break; case "*": op = new operatorMul(); break; case "/": op = new operatorDiv(); break; } return op; } } class Program { static void Main(string[] args) { Operator operat = operatorFactory.createOperator("*"); operat.NumberA = 2; operat.NumberB = 4; double result = operat.GetResult(); Console.WriteLine(result); } } }
相关文章推荐
- PropertyChangeListener简单理解
- 什么是设计模式
- 设计模式之创建型模式 - 特别的变量问题
- 七、设计模式——装饰模式
- 设计模式总结
- 设计模式之创建型模式
- 浅谈设计模式的学习
- PHP设计模式之装饰者模式代码实例
- php设计模式之单例模式实例分析
- 介绍php设计模式中的工厂模式
- PHP设计模式之适配器模式代码实例
- 深入浅出23种设计模式
- 浅谈c#设计模式之单一原则
- C#设计模式之观察者模式实例讲解
- C#设计模式之单例模式实例讲解
- 学习JavaScript设计模式(接口)
- 深入理解JavaScript系列(28):设计模式之工厂模式详解
- 面向对象设计模式的核心法则
- JavaScript设计模式之单件模式介绍
- 深入理解JavaScript系列(25):设计模式之单例模式详解