zoukankan      html  css  js  c++  java
  • 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


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

  • 相关阅读:
    进程(第三部分)
    02_jni_hello_c函数介绍
    01_ndk目录介绍
    00_前情回顾
    06_锅炉压力案例_progressbar实现
    05_锅炉压力案例_java实现
    ASP.NET MVC的过滤器笔记
    ASP.NET MVC的过滤器笔记
    ASP.NET MVC的过滤器笔记
    ASP.NET MVC的过滤器笔记
  • 原文地址:https://www.cnblogs.com/insus/p/3825805.html
Copyright © 2011-2022 走看看