简单工程模式

可维护、可复用、可扩展、灵活性好。 很多对象到底要实例化谁,将来会不会增加实例化对象。 用一个类(工厂)来做这个创造实例的过程。

/// <summary>
/// 抽象出父类
/// </summary>
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 Add : Operation
{
    public override double GetResult()
    {
        return NumberA + NumberB;
    }
}
public class Sub : Operation {
    public override double GetResult()
    {
        return NumberA - NumberB;
    }
}

/// //

public enum OperationType
{
    add,
    sub,
}
/// <summary>
/// 工厂
/// </summary>
public class OperationFactory
{
    public static Operation creatOperation(OperationType op)
    {
        Operation oper = null;
        switch (op)
        {
                case OperationType.add:
                oper = new Add();
                break;
                case OperationType.sub:
                oper = new Sub();
                break;
        }
        return oper;
    }
}


消费代码:
    private Operation oper = OperationFactory.creatOperation(OperationType.add);
    oper.NumberA = 1;
    oper.NumberB = 2;
    private double result = oper.GetResult();

 结构大体这样,若需要改动某个算法的逻辑,只需要改动它自己即可不会对其他算法造成影响。想要加减算法也很方便不会影响其他逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值