设计模式-工厂方法模式

设计模式-工厂方法模式

工厂方法模式实现计算器

首先写一个运算类Operation类

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()
    {
   
    	double result = 0;
        return result;
    }
}

加减乘除类

class OperationAdd : Operation //加法类,继承运算类
{
   
    public override double GetResult(){
   
        double result = 0;
        result = NumberA + NumberB;
        return result;
    }
}
class OperationSub : Operation //减法类,继承运算类
{
   
    public override double GetResult(){
   
        double result = 0;
        result = NumberA - NumberB;
        return result;
    }
}
class OperationMul : Operation //乘法类,继承运算类
{
   
    public override double GetResult(){
   
        double result = 0;
        result = NumberA * NumberB;
        return result;
    }
}
class OperationDiv : Operation //除法类,继承运算类
{
   
    public override double GetResult(){
   
        double result = 0;
        if(NumberB == 0)
            throw new Exception("除数不能为0。");
        result = NumberA / NumberB;
        return result;
    }
}

先创建一个工厂接口

interface IFactory
{
   
    Operation CreateOperation();
}

具体工厂实现这个接口

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();
    }
}

客户端实现

IFactory operFactory = new AddFactory();
Operation oper = operFactory.CreateOperation();
oper.NumberA = 1;
oper.NumberB = 2;
double result = oper.GetResult();

简单工厂模式与工厂方法模式的比较

简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。

工厂方法模式,定义了一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

相关推荐

  1. 设计模式-工厂方法模式

    2024-02-23 06:34:01       43 阅读
  2. 设计模式-工厂方法模式

    2024-02-23 06:34:01       25 阅读
  3. 设计模式工厂方法模式

    2024-02-23 06:34:01       13 阅读
  4. 设计模式工厂方法

    2024-02-23 06:34:01       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-23 06:34:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-23 06:34:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-23 06:34:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-23 06:34:01       20 阅读

热门阅读

  1. 一次学习引发我对于 synchronized 的再理解

    2024-02-23 06:34:01       26 阅读
  2. 设计模式--原型模式和建造者模式

    2024-02-23 06:34:01       29 阅读
  3. Json简介与基本使用

    2024-02-23 06:34:01       28 阅读
  4. Sora - 探索AI视频模型的无限可能

    2024-02-23 06:34:01       30 阅读
  5. 20240222作业

    2024-02-23 06:34:01       25 阅读
  6. IOS总体框架介绍和说明

    2024-02-23 06:34:01       29 阅读
  7. vue3 之 数据格式化函数

    2024-02-23 06:34:01       24 阅读
  8. 【shell】shell判断的几种方式

    2024-02-23 06:34:01       29 阅读
  9. python第七节:条件、循环语句(1)

    2024-02-23 06:34:01       28 阅读