设计模式之工厂方法(二)

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

简单工厂vs工厂方法:

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

工厂方法实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在,也就是说,工厂方法把简单工厂的内部逻辑移到了客户端代码来进行,如果想要增加新的功能不需要修改工厂类,而是修改客户端。

 

    //操作计算接口
    public interface IOperation
    {
        int GetResult(int numOne,int numTwo);
    }
    
    //加法运算
    public class AddOperation : IOperation
    {
        public int GetResult(int numOne, int numTwo)
        {
            return numOne + numTwo;
        }
    }
    //减法运算
    public  class SubOperation : IOperation
    {
        public int GetResult(int numOne, int numTwo)
        {
            return numOne - numTwo;
        }
    }

    //工厂方法接口
    public interface IOperationFactoryMethod
    {
        IOperation CreateOperation();
    }
    //加法工厂方法
    public class AddFactory : IOperationFactoryMethod
    {
        public IOperation CreateOperation()
        {
            return new AddOperation();
        }
    }
    //加法工厂方法
    public class SubFactory : IOperationFactoryMethod
    {
        public IOperation CreateOperation()
        {
            return new SubOperation();
        }
    }

    //测试;创建工厂方法来返回计算类
    IOperationFactoryMethod fac = new AddFactory(); 
    IOperation oper = fac.CreateOperation();
    int re =  oper.GetResult(1, 2);
发布了65 篇原创文章 · 获赞 28 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_26900081/article/details/88569883