当前位置:首页 > 公司荣誉 >

Net设计模式实例之简单工厂模式(Simple Factory Patte

作者:厦门七星音乐岛文化传播有限公司 发布时间:2017-09-15 10:30:22

Net设计模式实例之简单工厂模式(Simple Factory Pattern) 一、简单工厂模式简介(Bref Introduction)

简单工厂模式(Simple Factory Pattern)的优点是,工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖

二、解决的问题(What To Solve)

客户实例化对象时不需要关心该对象是由哪个子类实例化的。

三、简单工厂模式分析(Analysis)

1、简单工厂模式结构

Net设计模式实例之简单工厂模式(Simple Factory Pattern)

IProduct接口:抽象产品类

ConcreteProduct类:产品类的具体实现

Simple Factory简单工厂类

四.实例分析(Example)

1、场景

一个简单计算器,具有简单的加操作和减操作。结构如下图所示

Net设计模式实例之简单工厂模式(Simple Factory Pattern)

SimpleFactory:简单工厂类。

Operation:抽象操作类

AddOperation:加法操作

SubOperation:减法操作

2、代码

1、抽象操作类Operation,及其具体实现类AddOperation、SubOperation

/// <summary> /// 抽象操作类 /// </summary> public abstract class Operation { public int numberA; public int numberB; public abstract int GetResult(); } /// <summary> /// 加法操作 /// </summary> public class AddOperation: Operation { public override int GetResult() { return (this.numberA + this.numberB); } } /// <summary> /// 减法操作 /// </summary> public class SubOperation: Operation { public override int GetResult() { return (this.numberA - this.numberB); } }

2、简单工厂类SimpleFactory

/// <summary> /// 简单工厂类 /// </summary> public class SimpleFactory { public static Operation CreateOperation(string operation) { Operation o = null; switch (operation) { case "+": o = new AddOperation(); break; case "-": o = new SubOperation(); break; } return o; } }

3、客户端代码

static void Main(string[] args) { Operation operation1 = SimpleFactory.CreateOperation("+"); operation1.numberA = 10; operation1.numberB = 20; Console.WriteLine("{0}+{1}={2}", operation1.numberA, operation1.numberB, operation1.GetResult()); Operation operation2 = SimpleFactory.CreateOperation("-"); operation2.numberA = 10; operation2.numberB = 20; Console.WriteLine("{0}-{1}={2}", operation2.numberA, operation2.numberB, operation2.GetResult()); Console.Read(); }

3、实例运行结果

Net设计模式实例之简单工厂模式(Simple Factory Pattern)

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:孝感SEO http://xiaogan.raoyu.net

  • 上一篇:NHibernate之旅(3):探索查询之NHibernate查询语言(HQ
  • 下一篇:最后一页
  • 

    COPYRIGHT © 2015 厦门七星音乐岛文化传播有限公司 ALL RIGHTS RESERVED.

    本站所有原创信息,未经许可请勿任意转载或复制使用

    网站地图 技术支持:肥猫科技
    精彩专题:网站建设
    购买本站友情链接、项目合作请联系客服QQ:2500-38-100