设计模式--简单工厂模式

简单工厂模式:
又称为静态工厂方法模式,它属于类创建型模式。在简单工厂模式中,一个抽象的产品类,可以派生出多个具体的产品类,它们都具有共同的父类。
模式构成:
工厂类:工厂类是我们的核心类,它负责创建所有实例的内部逻辑,工厂类可以直接被调用创建我们的产品实例。
抽象产品类:简单工厂模式所创建的所有对象的父类,它负责描述所有实例所拥有的公共接口。
具体产品类:简单工厂所创建的具体的实例对象。
适用场景:
工厂类负责创建的对象比较少,由于创建的对象较少,不会造成工厂方法中的业务逻辑太过复杂。
客户端只知道传入工厂类的参数,对于如何创建对象并不关心。**

`计算器示例:
1.抽象一个基类,提供一个计算方法;

//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;
        }
    }

2、创建子类基础该基类,例如加法、减法等子类,同时实现计算结果方法(代码此处省略。。。)
3、创建运算工厂类,定义一个工厂接口用于实现生成算法。

 //简单运算工厂类
   public  class OperationFactory
    {
        public static Operation createOperate(string operate)
        {
            Operation oper = null;
            switch (operate)
            {
                case "+":
                    oper = new OperationAdd();
                    break;
                case "-":
                    oper = new OperationSub();
                    break;
                case "*":
                    oper = new OperationMul();
                    break;
                case "/":
                    oper = new OperationDiv();
                    break;
                default:
                    Console.WriteLine("输入运算符有误!!!");
                    break;
            }
            return oper;
        }
    }

4、在主界面生成客户端代码

//客户端代码
    class Program
    {
        static void Main(string[] args)
        {
            Operation oper;
            oper = OperationFactory.createOperate("+");
            oper.NumberA = 4;
            oper.NumberB = 8;
            double result = oper.GetResult();
            Console.WriteLine("结果是:" + result);`
        }               
    }

5、简单工厂模式—类图
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值