分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

Asp.Net 设计模式 之 “简单工厂”模式

发布时间:2023-09-06 01:23责任编辑:傅花花关键词:暂无标签
  • 主要思想:
     public static Operation CreateFactory(string ope)
        {
            //实例化空父类,让父类指向子类
            Operation op = null;
            switch (ope)
            {
                case "+":
                    op = new OperationAdd();//父类指向OperationAdd这个子类,并调用子类中的加法
                    break;
                case "-":
                    op = new OperationSub();//父类指向OperationSub这个子类,并调用子类中的减法
                    break;
            }
            return op;
        }
  • 相关源码:
 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 ?7 namespace FactoryModel 8 { 9 ????//====================使用C#,利用简单工厂模式,实现简单的计算器功能====================10 ????//考察时知识点:面向对象三大特性——继承、封装、多态11 ????/// <summary>12 ????/// 1.定义父类,同时也是一个封装13 ????/// </summary>14 ????class Operation15 ????{16 ????????//2.因为要让子类能够对父类进行访问,故应要将参数定义为受保护的变量类型17 ????????protected int numberA;18 ????????protected int numberB;19 ????????//定义属性(必写)20 ????????public int NumberA21 ????????{22 ????????????get { return numberA; }23 ????????????set { numberA = value; }24 ????????}25 ????????public int NumberB26 ????????{27 ????????????get { return numberB; }28 ????????????set { numberB = value; }29 ????????}30 ????????//3.封装虚方法,以供子类进行重写31 ????????public virtual int getResule()32 ????????{33 ????????????int result = 0;34 ????????????return result;35 ????????}36 ????}37 ????/// <summary>38 ????/// 4.定义子类,继承父类,并对父类进行重写(加法)39 ????/// </summary>40 ????class OperationAdd : Operation41 ????{42 ????????public override int getResule()43 ????????{44 ????????????return numberA + numberB;45 ????????}46 ????}47 ????//5.定义子类,继承父类,并对父类进行重写(减法)48 ????class OperationSub : Operation49 ????{50 ????????public override int getResule()51 ????????{52 ????????????return numberA - numberB;53 ????????}54 ????}55 ????//6.创建简单工厂模式56 ????class Factory57 ????{58 ????????/// <summary>59 ????????/// 封装返回值类型为上面“父类型”——Operation类型的方法60 ????????/// </summary>61 ????????/// <param name="ope">ope是指运算的类型,如+、-、*、/</param>62 ????????/// <returns></returns>63 ????????public static Operation CreateFactory(string ope)64 ????????{65 ????????????//实例化空父类,让父类指向子类66 ????????????Operation op = null;67 ????????????switch (ope)68 ????????????{69 ????????????????case "+":70 ????????????????????op = new OperationAdd();//父类指向OperationAdd这个子类,并调用子类中的加法71 ????????????????????break;72 ????????????????case "-":73 ????????????????????op = new OperationSub();//父类指向OperationSub这个子类,并调用子类中的减法74 ????????????????????break;75 ????????????}76 ????????????return op;77 ????????}78 ????}79 ????//7.主函数中进行调用80 ????class Program81 ????{82 ????????static void Main(string[] args)83 ????????{84 ????????????//要用哪种运算,只需将参数传入工厂中的方法中,工厂将会自动调用相关的方法,85 ????????????//即(父类指向相应的子类,从而调用相应的方法),进行相应的运算86 ????????????Operation op = Factory.CreateFactory("+");87 ????????????op.NumberA = 10;88 ????????????op.NumberB = 30;89 ????????????//调用父类中的方法来获取结果90 ????????????int result = op.getResule();91 ????????????Console.WriteLine(result);92 ????????????Console.ReadKey();93 ????????}94 ????????//如果在后续的编程中仍需要有其他的运算,则只需要在子类中加上相应的子类,95 ????????//并在工厂中加上相应的case情况即可,这也就是简单工厂的“利”所在96 ????}97 }

Asp.Net 设计模式 之 “简单工厂”模式

原文地址:http://www.cnblogs.com/pang951189/p/7805073.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved