设计模式——工厂方法模式
来源:互联网 发布:阿里云登录界面 编辑:程序博客网 时间:2024/06/05 19:29
//运算操作的父类,各种操作运算继承此类 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() { return 0; } }
public class OperationAdd : Operation //加法运算
{ public override double GetResult() { return NumberA + NumberB; } }
public class OperationSub : Operation //减法运算 { public override double GetResult() { return NumberA - NumberB; } }
public class OperationMul : Operation //乘法运算 { public override double GetResult() { return NumberA * NumberB; } }
public class OperationDiv : Operation //除法运算 { public override double GetResult() { if (NumberB == 0) Console.WriteLine("除数不能为0!"); return NumberA / NumberB; } }
//具体加法工厂 class AddFactory : IFactory { public Operation CreateOperation() { return new OperationAdd(); } }
//具体减法工厂 class SubFactory : IFactory { public Operation CreateOperation() { return new OperationSub(); } }
//具体乘法工厂 class MulFactory : IFactory { public Operation CreateOperation() { return new OperationMul(); } }
//具体除法工厂 class DivFactory : IFactory { public Operation CreateOperation() { return new OperationDiv(); } }
//客户端代码
class MainProgram { public void Main() { //客户端创建具体的工厂 IFactory factory = new AddFactory(); //调用工厂的接口 Operation operation = factory.CreateOperation(); operation.NumberA = 1; operation.NumberB = 2; double result = operation.GetResult(); Console.ReadKey(); } }
- 设计模式—工厂方法
- 设计模式—工厂方法
- 设计模式——抽象工厂模式、工厂方法模式
- Java设计模式—工厂方法模式&抽象工厂模式
- Java设计模式—工厂方法模式&抽象工厂模式
- 设计模式——工厂方法模式
- 设计模式——工厂方法模式
- 设计模式——工厂方法模式
- 设计模式——工厂方法模式
- 设计模式——工厂方法模式
- 设计模式——工厂方法模式
- 设计模式——工厂方法模式
- 设计模式——工厂方法模式
- 设计模式——工厂方法模式
- 设计模式——工厂方法模式
- 设计模式——工厂方法模式
- 设计模式——工厂方法模式
- 设计模式——工厂方法模式
- 安卓学习导图
- 指针数组 数组指针 指针函数 函数指针
- SharePoint REST API
- 删除快捷键的箭头
- 鸟哥私房菜 第八章 Linux磁盘与文件系统管理
- 设计模式——工厂方法模式
- 测鬼记(上)——测试(十二)
- GTK+布局管理
- 延长天文学家寿命的发现——纳皮尔发现对数
- python 复习
- java中String类型的私有属性value是如何初始化的?
- ngrok配置教程
- 赌场圣手(从不失手)——隐马尔可夫!
- 设计模式——原型模式