# 介绍

TIP

设计模式整理。

# Factory(工厂模式)

TIP

主要解决:通过不同的输入参数得到一个共有特性的类,这个类包含了继承关系的子类,
实现:返回一个父类,从而继续业务逻辑操作。
实际例子:比如通过不同的客户ID,定制返回不同的订单模板。

1.父类

public class Calculator
{
    public double NumberA { get; set; }
    public double NumberB { get; set; }
    public virtual double GetResult() => 0;
}

2.子类继承

public class OperationAdd : Calculator
{
    public override double GetResult()
    {
        return (NumberA + NumberB) * 10;
    }
}
public class OperationSub : Calculator
{
    public override double GetResult()
    {
        return (NumberA - NumberB) * 10;
    }
}

3.初始化工厂

public class CalculatorFactory
{
    public static Calculator GetCalculator(string operatorChar)
    {
        Calculator result = null;
        switch (operatorChar)
        {
            case "+":
                result = new OperationAdd();
                break;
            case "-":
                result = new OperationSub();
                break;
            default:
                break;
        }
        return result;
    }

}

4.调用

var op = CalculatorFactory.GetCalculator("+");
op.NumberA = 10;
op.NumberB = 20;
Console.WriteLine(op.GetResult());
Last Updated: Tuesday, June 9, 2020 4:55 PM