博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET开发,从二层至三层,至面向对象 (2)
阅读量:4677 次
发布时间:2019-06-09

本文共 1167 字,大约阅读时间需要 3 分钟。

继续上一篇《》 。我们了解到怎样把自己的程序由二层变为三层。本篇我们将学会在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;):
注:文章太长了,写成续集,请关注......

转载于:https://www.cnblogs.com/insus/p/3825805.html

你可能感兴趣的文章
CF715C Digit Tree
查看>>
二分法练习1
查看>>
QT 制作串口调试小助手----(小白篇)
查看>>
前端MVC实践之hellorocket——by张舒彤
查看>>
OptimalSolution(2)--二叉树问题(3)Path路径问题
查看>>
IPC 之 Messenger 的使用
查看>>
爱情八十六课,等得不是爱情
查看>>
企业网站建设流程
查看>>
数据库的显示、创建、使用 、用户授权管理及忘记root用户后重置密码
查看>>
ES5和ES6中的继承 图解
查看>>
macos 下usb键盘问题.
查看>>
SQL函数学习(十六):STUFF()函数
查看>>
CI CLI执行方式
查看>>
201521123092《Java程序设计》第七周学习总结
查看>>
day23---ajax跨域解决---JSONP
查看>>
redis封装 get查询/删除key/keys查询
查看>>
移动端自适应js
查看>>
Pro Android学习笔记(三二):Menu(3):Context菜单
查看>>
java中用StringBuffer写文件换行
查看>>
c#ASP.NET中页面传值共有这么几种方式
查看>>