详细说明适配器设计模式在ASP.NET的应用
前天有网友问设计图案的Adapter图案,他说不太好理解。让Insus.NET举一个简单的例子来说明。下面的动画是因苏。NET的效果: 。
上面的演示,两个灯的规格一样,要求输入的电压为15伏Light1是直接使用,而Light2是使用适配器(电源适配器)。因此Light1只能接收15伏的电压,小于15伏,会提示电压过低,如果超过了15伏,Light1肯定被烧坏Light2使用了电源适配器,它接收15伏至220的电压,在这电压范围之内,电源适配器会把电压转为15的电压。小于15伏,会提示电压过低,如果超过了220伏,适配器被烧坏。好,我们程序开始,先创建一个灯光线的类:复制代码代码如下:轻卡使用系统;使用系统。集合。通用;使用系统Linq .使用系统Web///摘要///光的摘要描述////摘要命名空间因苏。NET {公共类light { private int _ InputVoltage=15;public int InputVoltage { get { return _ InputVoltage;}设置{如果(值15)引发新的异常('电压过低。');否则如果(值15)抛出新的异常('危险!电压过大灯烧坏。');其他值=15;_InputVoltage=值;} } public Light() { ////TODO:在此处添加构造函数逻辑//} } }再创建一个灯的电源适配器:复制代码代码如下使用系统的:电源适配器;使用系统。集合。通用;使用系统Linq .使用系统Web///摘要////电源适配器的摘要描述////摘要命名空间因苏。NET {公共类电源适配器:灯{灯_灯;公共电源适配器(电灯){这个。_光=光;} public int InputVoltage { get { return _ Light .输入电压{ 0 }设置{如果(值15)引发新的异常('电压过低。');否则如果(值220)抛出新的异常('危险!电压过大电源适配器烧坏。
');其他值=15;_光输入电压=值;} } } } 如何测试它们,我们得模拟一个环境,创建一个网页Default.aspx:复制代码代码如下:默认值. aspx %@页面语言=' c# ' AutoEventWireup=' true ' CodeFile=' Default。aspx。cs ' Inherits=' _ Default ' %!DOCTYPE html html xmlns=' http://www .w3。org/1999/XHTML ' head runat=' server ' title/title脚本类型=' text/JavaScript '函数isNumeric(键码){ return((键码=48键码=57)| |键码==8)}/script/head body form id=' form 1 ' runat=' server ' table tr TD align=' right '插座电压/TD TD col span=' 2 ' ASP : TextBox ID=' TextBox 1 ' runat=' server ' onkeydown=' return为数字(事件。键码);text=' 220 '/AsP : TextBox/TD/tr TD align=' right '开关/TD TD colspan=' 2 ' ASP : checkbox ID=' checkbox switch ' runat=' server ' AutoPostBack=' true ' on checked changed=' checkbox switch _ checked changed '/TD/tr TD align=' right '灯/TD TD字段设置样式='宽度: 200 pxlegendLight 1/图例ASP :图像ID=' Image1 ' runat=' server ' ImageUrl=' Images/Light _ c . gif ' Width=' 36 ' Height=' 55 '/br/ASP :标签ID=' label 1 ' runat=' server ' Text=' '/ASP :标签/字段集/TD TD字段集样式=' Width : 250 pxlegendLight 2/legendLight ASP :图像ID=' Image2 ' runat=' server ' ImageUrl=' Images/Light _ c . gif ' Width=' 36 ' Height=' 55 '/br/ASP :标签ID=' label 2 ' runat=' server ' Text=' '/ASP :标签/字段集/TD/tr/表格/表单/正文/html接下来,看看开关的事开与关的事件,有详细的注解:复制代码代码如下:默认值。aspx.cs使用系统;使用系统。集合。通用;使用系统Linq .使用系统网络.使用系统网络。用户界面使用系统。网络控件;使用因苏。NET公共部分类_默认:系统网络。ui。第{ Light的字符串=' ~/Images/Light _ c . gif '页;string onLight=' ~/Images/Light _ o . gif ';受保护的无效页面_加载(对象发送方,EventArgs e) { }受保护的void CheckBox开关_ checked已更改(对象发送方,EventArgs e) { var cb=(CheckBox)发送方;//插座缺少电压为220伏整数输入=转换. ToInt32(字符串IsNullOrEmpty(这。文本框1.Text.Trim())?"220' :这个文本框1。文字。trim());//开关打开中频(cb .选中){尝试{ //实例一个电灯光线光线=新light();//插入插座,使用插座电压光输入电压=输入;//电灯被打开这个图片1。ImageUrl=onLight//显示正常输出电压这个。标签1 .文字=光输入电压。ToString();} catch(异常ex) { //如果电压不正常,电灯打不开或是被烧坏这个图片1。ImageUrl=offLight//显示异常信息这个。标签1。文本=ex .消息;}尝试{灯光=新light();//使用电源适配器PowerAdapter pa=新的电源适配器(指示灯);爸爸输入电压=输入;这个图片2。ImageUrl=onLight这个。标签2。文本=pa .输入电压。ToString();} catch(异常ex) { this .图2。ImageUrl=offLight这个。标签2。文本=ex .消息;}这个文本框1。Enabled=false} //开关关闭else {这个。文本框1 .文本=字符串。空的;这个。文本框使能=真这个图片1。ImageUrl=offLight这个图片2。ImageUrl=offLight} } } 11:44分,补充下面内容,有网友问及演示完整代码(.网框架4.0)
版权声明:详细说明适配器设计模式在ASP.NET的应用是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。