ASP.NET开发,一开始是为了超赶时间完成任务,只能把功能实现即可。如下面一个功能,在网页中有一个铵钮,用户点一点切换网页的图片,再点一点又切换回来。
我们要怎样做?在铵钮事件中去变更图片的路径即可。

这个例子,Insus.NET找到两张图片,图片来自《ASP.NET的适配器设计模式(Adapter)http://www.cnblogs.com/insus/archive/2013/02/04/2891426.html 。
铵钮也参考了《关于母版页的按钮事件http://www.cnblogs.com/insus/archive/2012/03/09/2387829.html 
和《用户控件如何控制ASPX页面的控件http://www.cnblogs.com/insus/archive/2012/04/16/2451664.html 。

OK,把两张图片放在站点下,并创建一个网页,如Default.aspx:

在Default.aspx.cs的Button1_Click事件:

演示:

你是这样开发吗?很简单吧,很快就可以完成并提交开发任务了吧。 你会说:不,用javascript和jQuery实现更快,更好效率,更好维护。Insus.NET想说的是javascript和jQuery不在此讨论范围。我们需要讨论的是ASP.NET开发。

下面Insus.NET使用面向对象来开发,先在Default.aspx改写一些:

此时我们可以把图片看当一个对象Light,创建一个类:

我们不可能把灯接到一个常开的线电路中去,即是说,需要在电路中安装一个开关。用户给这个开关一个“开”还是“关”的指令。因此还要创建一个对象Switch类:

两个对象Light和Swtich完成了,现在来看看xxx.aspx.cs的铵钮事件怎样实现:

再次演示:

本例全部实现完成,运用了面向对象开发 ,两个类中实际上有使用了中介者设计模式和内部一些协作进行封装。

演示源代码可从下面链接下载(Default是重构前,Default2是重构后):
http://download.cnblogs.com/insus/Refactoring/mediator_refactor_OO.rar

最新文章

  1. Java-坦克大战
  2. Linux命令之route - 显示和操作IP路由表
  3. [转载]基于TFS实践敏捷-修复Bug和执行代码评审
  4. js判断访问的当前设备是手机还是电脑
  5. Kosaraju 算法
  6. CSS盒模型重新理解篇
  7. 解决:insert Vodafone sim card,open the mms read report,when receive the read report,cann't download..
  8. linux下gcc编译的参数详细说明
  9. Maven 解决JAR包冲突
  10. mvc5 HTML Helper
  11. ASP.NET 开发人员应该知道的8个网站
  12. UNDO表空间损坏,爆满,ORA-600[4194]/[4193]错误解决
  13. android左右晃动动画(红包左右晃动)
  14. SignalR Troubleshooting
  15. js数组之迭代方法
  16. 玩转 sublime3 第二弹 ES6环境
  17. AndroidStudio3更改包名失败
  18. Spring Data JPA 初体验
  19. Openvswitch手册(4): Mirror
  20. 【PAT】B1042 字符统计(20 分)

热门文章

  1. 启动Eclipse 弹出“Failed to load the JNI shared library”错误的解决方法
  2. int跟byte[]数组互转的方法,整数 + 浮点型
  3. Oracle 12c
  4. Android开发(二十五)——Android上传文件至七牛
  5. dubbo 2.5.4-SNAPSHOT dubbo-admin 报错
  6. js 当前日期增加自然月
  7. mac 自动配置java版本
  8. linux下 C++ 读取mat文件 MATLAB extern cyphon scipy 未完待续
  9. jquery重写一个对话框
  10. SNF开发平台WinForm之八-自动升级程序部署使用说明-SNF快速开发平台3.3-Spring.Net.Framework