ASP.NET的简单与面向对象开发
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
ASP.NET的简单与面向对象开发的更多相关文章
- (0)ASP.NET Core 简单介绍 和开发环境搭建 - ASP.NET从MVC5升级到MVC6
ASP.NET从MVC5升级到MVC6 总目录 ASP.NET Core 首先,ASP原本只是一种技术,这种技术从上个世纪90年代就有了. Active Service Page 和 Java Ser ...
- Java面向对象编程 第一章 面向对象开发方法概述
一.软件开发经历的生命周期: ①软件分析 ②软件设计 ③软件编码 ④ 软件测试 ⑤ 软件部署 ⑥软件维护 二.为了提高软件开发效率,降低软件开发成本,一个优良的软件系统应该具备以下特点: ① 可重用性 ...
- Java面向对象 第一章 面向对象开发方法概述
一.软件开发经历的生命周期: ①软件分析 ②软件设计 ③软件编码 ④ 软件测试 ⑤ 软件部署 ⑥软件维护 二.为了提高软件开发效率,降低软件开发成本,一个优良的软件系统应该具备以下特点: ① 可重用性 ...
- (读书笔记)Asp.net Mvc 与WebForm 混合开发
根据项目实际需求,有时候会想在项目中实现Asp.net Mvc与Webform 混合开发,比如前台框架用MVC,后台框架用WebForm.其实要是实现也很简单,如下: (1)在MVC 中使用Webfo ...
- Asp.Net MVC3 简单入门第一季(三)详解Controller之Filter
前言 前面两篇写的比较简单,刚开始写这个系列的时候我面向的对象是刚开始接触Asp.Net MVC的朋友,所以写的尽量简单.所以写的没多少技术含量.把这些技术总结出来,然后一简单的方式让更多的人很好的接 ...
- ASP.NET MVC (Razor)开发
ASP.NET MVC (Razor)开发 过去我们使用过一些周报工具来完成项目组或部门的周报填写与考核工作,但多少有些不理想,要么功能太过简单,要么功能特别繁杂,不接地气,使用不便. 后来我们就考虑 ...
- ASP.NET MVC4简单使用ELMAH记录系统日志
ASP.NET MVC4简单使用ELMAH记录系统日志 前言 在项目开发.测试以及已经上线的项目中都会存在bug,而如果我们在项目的各个阶段都能及时的监控系统出现的任何问题,那么对于我们开发人员来说完 ...
- LBPL--基于Asp.net、 quartz.net 快速开发定时服务的插件化项目
LBPL 这一个基于Asp.net. quartz.net 快速开发定时服务的插件化项目 由于在实际项目开发中需要做定时服务的操作,大体上可以理解为:需要动态化监控定时任务的调度系统. 为了实现快速开 ...
- 在ASP.NET Core中使用Apworks开发数据服务:对HAL的支持
HAL,全称为Hypertext Application Language,它是一种简单的数据格式,它能以一种简单.统一的形式,在API中引入超链接特性,使得API的可发现性(discoverable ...
随机推荐
- http协议读书笔记2-连接管理
一.http是如何使用tcp连接的? http连接本质就是tcp连接和一些使用连接的规则.所有的http通讯都是由tcp/ip来承载的.tcp/ip是全球计算机及网络设备都在使用的一种常用的分组交换的 ...
- 美行Thinkpad八通道快捷入口
美行Thinkpad八通道快捷入口 链接: http://shop.lenovo.com/perksoffer/us/en/laptops/thinkpad/?__followRobots=true打 ...
- linq to entity 获取项的集合总数
IEnumerable<InspecReportsContextEntity> OnenewDate = lisConAll.Where(p => p.inspectime == t ...
- memcached 源码阅读笔记
阅读 memcached 最好有 libevent 基础, memcached 是基于 libevent 构建起来的. 通由 libevent 提供的事件驱动机制触发 memcached 中的 IO ...
- Asp.net Core中使用Entity Framework Core CodeFirst
1.安装对应的包 "Microsoft.EntityFrameworkCore.Design": "1.1.0", "Microsoft.Entity ...
- IPv6 app适配
参考资料: https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/Network ...
- C++ 检测内存泄露工具 -- Windows平台
平台:Windows7 64bit,编译器G++(mingw) 工具:Dr Memory,项目主页:https://code.google.com/p/drmemory/ (可能要FQ,可能会很慢,所 ...
- tcp为什么需要3次握手4次挥手
一.起因 在网络请求中,为了提升性能,通常会采用长连接的方式避免在每一次交互都进行网络链接的创建和关闭,而长连接就是tpc的链接方式.因而有必要对tcp的创建链接和关闭有所了解.在网络上查询了一些知识 ...
- 使用GROUP BY统计记录条数 COUNT(*) DISTINCT
例如这样一个表,我想统计email和passwords都不相同的记录的条数 CREATE TABLE IF NOT EXISTS `test_users` ( `email_id` ) unsigne ...
- 组合模式及C++实现
组合模式 组合模式,是为了解决整体和部分的一致对待的问题而产生的,要求这个整体与部分有一致的操作或行为.部分和整体都继承与一个公共的抽象类,这样,外部使用它们时是一致的,不用管是整体还是部分,使用一个 ...