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


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

  • 相关阅读:
    h5 . css入门 2.CSS基础
    html5与css 1. web标准及组成
    SQL编程
    JMeter学习(八)JDBC测试计划-连接Oracle
    JMeter学习(七)聚合报告之 90% Line 正确理解
    JMeter学习(六)集合点
    JMeter学习(五)检查点
    JMeter学习(十四)jmeter_断言使用
    JMeter学习(四)参数化
    JMeter学习(三)元件的作用域与执行顺序
  • 原文地址:https://www.cnblogs.com/insus/p/3825805.html
Copyright © 2011-2022 走看看