C#设计模式之简单工厂模式

  大家一听到简单工厂这个名字,都会感到很陌生,不知道他是干什么的 ,其实简单工厂模式是类的创建模式

什么意思呢?就是根据提供给它的数据返回几个可能类中的一个类的实例。


其实简单工厂的主要思想就是:我要什么,就问他要(调用方法返回),而不是自己创建(亲自实例化)。


如果需要的东西变了,就不需要重新创建(更改实例化代码),而是仍然问别人要(没有修改任何代码,还是调用那个方法,你只要修改那个方法就够了。)


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



接下来是一段代码:一个简单的小例子。求两个数的和,应用了简单工厂模式。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 简单工厂
{
  //父类
    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; }
//子类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 
简单工厂


{ public class OperationAdd:Operation { public override double GetResult() { double result = 0; result = NumberA + NumberB; return result; } }}

/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 
简单工厂

{ public class OperationFactory { public static Operation createOperate(string operate) { Operation oper = null; switch (operate) { case "+": oper = new OperationAdd(); break; } return oper; } }}

//Main方法类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 
简单工厂

{ class Program { static void Main(string[] args) { Operation oper; oper = OperationFactory.createOperate("+");// oper.NumberA = 1; oper.NumberB = 2; double result = oper.GetResult(); Console.WriteLine("结果是:" + result); } }}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值