• ASP.NET开发,从二层至三层,至面向对象 (2)


    继续上一篇《ASP.NET开发,从二层至三层,至面向对象http://www.cnblogs.com/insus/p/3822624.html 。我们了解到怎样把自己的程序由二层变为三层。本篇我们将学会在asp.net 面向对象编程。

    真正来说,我们不应该直接在.aspx.cs中new一个BizBase类。正确的做法,是创建一个与.aspx.cs有直接关系的对象。如Item对象。根据数据库表的设计,它有三个字段,因此我们在这个类中创建三个property:



    下面我们分别对.aspx.cs的好几个方法,函数再次重构,先看Data_Binding(),把下图中#44至#49行代码移至Item类,并创建为一个返回DataTable的GetAll()函数。

    我们就可以解决刚才所提及的问题,是在Item类中new BizBase类,而不是在.aspx.cs去。更好地解耦合。这样,我在.aspx.cs的Data_Binding()方法重构为:



    在这里,我们已经是new Item()了。下面是重构添加记录的方法,把一些相关的代码移至Item类中,这个方法有两步,一是判断,二是插入:

     在.aspx.cs的添加按钮的click事件,就可以重构为:

     
    现在我们开始把删除事件的程序,重构至Item类别中去,创建一个Delete()方法:

     GridView删除事件,重构之后,成了这样子:

    这完全是使用对象来实现。也就是对象本身的property和方法。具体property或是方法是怎样运作,此时无需多关心。达到了封装的效果。

     
     最后一个地方重构的,就是获取标量值的方法,在Item对象中,创建一个返回string值函数GetDescriptionByItemNbr(),就两行代码之事:

    被注释掉的代码,就是原来在.aspx.cs的代码。

     


    经过一系列的搬来移去,删除所有注释之后,得到一个完整的Item对象:

     
    结果原先在.aspx.cs实例化的,现在完全跑去Item这个类中了。
    再来看看.aspx.cs的代码,也删除所有注释之后,还有很多地方看到两句实例化的代码,就是:

     Item objItem = new Item();

    InsusJsUtility js = new InsusJsUtility();


    这样,我们可以再把它们从方法或函数内,搬移至页面内:

     其它方法内有此两句的,均可以删除了。最终完整的.aspx.cs代码:



    以后,BizBase类基本上不需要怎样去修改了,数据库添加有新表,可以以表的名来创建一个类似Item的类。它包含有property,method,function等。在网页中,直接new实例化这个对象。

    本篇演示源程序(Access DB; .NET Framework 4.0;):
    http://download.cnblogs.com/insus/ASPDOTNET/Asp_OOP2.rar


    注:文章太长了,写成续集,请关注......

  • 相关阅读:
    javascript获取当前日期、年份和月份等
    程序员也可以懂一点期望值管理
    数据类型,隐式转换以及json,对象,引用类型,预解析 视频教程
    两个值交互位置的几种方法
    通过Class获取标签,兼容的几种思路
    前端开发流程
    元素多层嵌套,JS获取问题
    原生JS实现分页效果2.0(新增了上一页和下一页,添加当前元素样式)
    原生JS实现分页效果1.0
    学习方法,以及时间的安排。
  • 原文地址:https://www.cnblogs.com/insus/p/3825805.html
Copyright © 2020-2023  润新知