博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
还贷的人是谁? 管他是父亲还是儿子,把钱还回来就行
阅读量:6646 次
发布时间:2019-06-25

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

本篇从案例开始,为了更好理解接口以及C#的知识,本篇抛开客户端jQuery或是Javascript知识,也就是说ASP.NET与C#一起讨论。

进入之前,你可以先细读msdn文章《》 或者论坛上一篇问题

《》 。这两篇均可以归为同一类知识。但是它们有一个共同的地方,就是在目标页中,去指定前一页控件名称,红色箭头指向高亮位置:

这里就是这次我们讨论的重点,也就是说你不能把它写死了。比如说,你(借方)有很多钱,借给了很多人(贷方),多少人不确定,现在你提醒或是他们要还你钱。因此借方不能只使用TextBox1去代表所有贷方。
贷方有可能是TextBox2,DropDownList3,RadioButtonList2,......等等
这样你得在上面MSDN代码示例中要写上很多代码,如:

现在,我们要怎样解决这个问题,我们怎样知道还钱的人是谁。
为了解这个问题,下面 Insus.NET创建一个asp.net站点,也顺便创建好几个网页,去代表借(debit)贷(credit)。
下面这个演示站点程序大概如下,首先是借方Debit.aspx:

 

 Debit.aspx.cs:

 

下面是贷方Credit,Insus.NET在演示中,列举了四个,实际环境中,也许会有少有多。先是Credit1.aspx:

 

由于Creditn.aspx.cs没有写任何代码,因此就不帖出来了。

Credit2.aspx:

 

Credit3.aspx:

Credit4.aspx:

 

分别演示一下,程序是能正常运行的:

上面的程序,我们都写死了,稍微改动一下,它就有问题了。再用演示,看看其它问题:
某一天系统维护时,在xxx.aspx改变了一些控件,它就取不到值了,或者是在Debit.aspx.cs中的代码,改变了一下控件ID名,在这些情况,均是在开发或是维护时,因某一处更改,好几个地方均需要更改。一旦取不了值,你需要重新去debug程序。
OK,我们需要解决这些问题,一是代码有可以不断增多,另外一个问题,不想写死控件ID。
其实最终关心的是贷方是否有把钱还回来。因此我们可以建一个接口Interface:
接口写好,贷方均需要实现这个接口,因为借了钱,就要还贷。
先来看看Credit1.aspx.cs:
Credit2.aspx.cs:

Credit3.aspx.cs:

Credit4.aspx.cs:

 任何一人,借了钱,均要实作这个接口。
这样好办了:

这个一改过之后,程序藕合已经脱离了。一方只管拿回自己的钱,一方不管是父亲还是儿子还钱(TextBox1还是DropDownList3......)
运行结果与没有重构前一样效果一样。

如果某一个Credit方有任何变更,如果TextBox1改为TextBox9还是DropDownList2改为TextBox,都与Debit借方无关了。如Credit3.aspx:

那只需要修改Credit3.aspx.cs:
全部说完了。虽是一个简单的例子,望你能更好理解接口在asp.net的应用。说实话,在Insus.NET的博客中,经常有使用interface的例子,有时间可以参考参考,可以加深理解与印象:
本演示源程序可以下面链接下载:

 

转载地址:http://tdyto.baihongyu.com/

你可能感兴趣的文章
NodeMCU快速上云集锦
查看>>
2017 05 25 Python输出万年历
查看>>
iOS-抠图:去除图片中指定范围颜色的三种方式
查看>>
iOS开发UI篇--YXFilmSelectView(一个酷炫的电影选票View)
查看>>
码code | 好物圈已上线,自家商品新增曝光机会
查看>>
数据存储
查看>>
元素大小与获取各种高度 宽度 距离总结
查看>>
小程序开发经验:多页面数据同步
查看>>
http重要知识点
查看>>
onlyoffice/documentserver中文乱码
查看>>
安卓机器怎么样不root激活xposed框架的步骤
查看>>
第三天-《企业应用架构模式》-映射到关系数据库
查看>>
Electron 在线热升级方案
查看>>
Eclipse Memory Analyzer入门教程
查看>>
如何将springmvc项目转为springboot
查看>>
node fs文件操作
查看>>
服务器部署2 - nginx
查看>>
给妹子讲python-S01E24深入解析异常处理方式
查看>>
深入作用域
查看>>
centos java环境安装
查看>>