ITPub博客

首页 > IT职业 > IT生活 > 对数据库数据操作,工厂方法设计模式(Factory Method)

对数据库数据操作,工厂方法设计模式(Factory Method)

IT生活 作者:jxegg 时间:2021-09-09 09:48:05 0 删除 编辑

在开发asp.net程序时,用户的数据将保存至数据库,程序与数据库之间的数据操作,会涉及到往数据库添加数据,编辑数据,更新数据和删除数据等。

本次Insus.NET介绍的是工厂方法,因此我们会从这几个操作入手。介绍工厂方法设计模式,得先从简单工厂设计模式(Simple Factory)开始,
简单工厂,有一个操作类,这个类有一个virtual方法,好让其它子类继承与重写:

Operation

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// /// Summary description for Operation/// namespace Insus.NET{    public class Operation    {        public virtual void Processing()        {                }    }}


数据添加类:

OperationAdd

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// /// Summary description for OperationAdd/// namespace Insus.NET{    public class OperationAdd : Operation    {        public override void Processing()        {            HttpContext.Current.Response.Write("数据添加操作。");        }    }}


数据编辑类:

OperationEdit

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// /// Summary description for OperationEdit/// namespace Insus.NET{    public class OperationEdit : Operation     {        public override void Processing()        {            HttpContext.Current.Response.Write("数据编辑操作。");        }    }}


数据更新类:

OperationUpdate

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// /// Summary description for OperationUpdate/// namespace Insus.NET{    public class OperationUpdate : Operation     {        public override void Processing()        {            HttpContext.Current.Response.Write("数据更新操作。");        }    }}


数据删除类:

OperationDelete

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// /// Summary description for OperationDelete/// namespace Insus.NET{    public class OperationDelete : Operation     {        public override void Processing()        {            HttpContext.Current.Response.Write("数据删除操作。");        }    }}


操作工厂类:

OperationFactory

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// /// Summary description for OperationFactory/// namespace Insus.NET{    public class OperationFactory    {        public static Operation CreateOperate(string operate)        {            Operation objOperation = null;            switch (operate)            {                 case "Add":                    objOperation = new OperationAdd();                    break;                case "Edit":                    objOperation = new OperationEdit();                    break;                case "Update":                    objOperation = new OperationUpdate();                    break;                case "Delete":                    objOperation = new OperationDelete();                    break;            }            return objOperation;        }    }}

 

OK,简单工厂完成,我们可以由简单工厂设计模式(Simple Factory)演变为工厂方法设计模式(Factory Method)。 

工厂方法设计模式,是定义一个用于创建对象的接口,让子类决定实例化哪一个类。

首先创建一个工厂接口:

IOperationFactory

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// /// Summary description for IOperationFactory/// namespace Insus.NET{    public interface IOperationFactory    {        Operation CreateOperation();    }}


下面分别是为添加,编辑,更新和删除各创建一个具体的工厂,并实现上面刚刚建好的工厂接口:
添加工厂类:

AddFactory

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// /// Summary description for AddFactory/// namespace Insus.NET{    public class AddFactory : IOperationFactory     {        public Operation CreateOperation()        {          return new OperationAdd();        }    }}


编辑工厂类:

EditFactory

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// /// Summary description for EditFactory/// namespace Insus.NET{    public class EditFactory : IOperationFactory     {        public Operation CreateOperation()        {            return new OperationEdit();        }    }}


更新工厂类:

UpdateFactory

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// /// Summary description for UpdateFactory/// namespace Insus.NET{    public class UpdateFactory : IOperationFactory     {        public Operation CreateOperation()        {            return new OperationUpdate();        }    }}


删除工厂方法:

DeleteFactory

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// /// Summary description for DeleteFactory/// namespace Insus.NET{    public class DeleteFactory : IOperationFactory     {        public Operation CreateOperation()        {            return new OperationDelete();        }    }}

 
这样一来,工厂方法设计模式,就是去掉简单工厂设计模式的操作工厂类,在客户端应用此设计模式,直接实例需要的哪个操作工厂,如添加工厂类还是删除工厂类等:

FactoryMethodDemo.aspx.cs

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Insus.NET;public partial class FactoryMethodDemo : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {        IOperationFactory factory = new UpdateFactory();  //实例更新工厂类。        Operation operation = factory.CreateOperation();        operation.Processing();    }}


 

 工厂方法设计模式源代码(.net 4.0):

 http://download.cnblogs.com/insus/CSharpNET/Insus_FactoryMethod.rar

 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1009/viewspace-2812637/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: python 文件备份
请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    84
  • 访问量
    846