博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
找人办事,代理设计模式(Proxy)
阅读量:7158 次
发布时间:2019-06-29

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

用简单的例子,说明代理(Proxy)设计模式。

Insus.NET在家忙写程序没有时间,手机没钱了,叫儿子给一百元去超市(此超市有手机充值的服务)帮Insus.NET手机充值(话费)。

手机充值的事,Insus.NET会做,儿子也会做,但是Insus.NET因某些情况,不能亲自办,叫儿子去代理(Proxy)。

定义一个抽象类[Work],让自己或是儿子类别都能实现的充值方法:

Work
using System;using System.Collections.Generic;using System.Linq;using System.Web;/// /// Summary description for Work/// namespace Insus.NET{    public abstract class Work    {        public abstract void Suppliement();    }}

当自己没有特殊情况,或是有时间的情况之,自己去超市对手机充值:

Self
using System;using System.Collections.Generic;using System.Linq;using System.Web;/// /// Summary description for Self/// namespace Insus.NET{    public class Self : Work     {        public Self()        {            //            // TODO: Add constructor logic here            //        }        public override void Suppliement()        {           HttpContext.Current.Response.Write ("手机充值人民币100元");        }    }}

事情代办,叫儿子去帮Insus.NET的手机充值:

Son
using System;using System.Collections.Generic;using System.Linq;using System.Web;/// /// Summary description for Son/// namespace Insus.NET{    public class Son: Work     {        Self objSelf;                public Son()        {            //            // TODO: Add constructor logic here            //        }        public override void Suppliement()        {            if (objSelf == null)            {                objSelf = new Self();            }            objSelf.Suppliement();        }    }}

asp.net运行程序,在站点建立一个aspx网页:

ProxyDemo.aspx.cs
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Insus.NET;public partial class ProxyDemo : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {        //自己为Insus.NET手机充值        Self objSelf = new Self();        objSelf.Suppliement();        //儿子(代理)为Insus.NET手机充值。        Son objSon = new Son();        objSon.Suppliement();    }}

 

 

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

你可能感兴趣的文章
win7升级nodejs8
查看>>
http断点续传
查看>>
悬浮显示input中所有的内容及css处理文字过长时显示为多余部分省略
查看>>
无线覆盖项目初步地勘——高校案例
查看>>
Hadoop MapReduce 处理2表join编程案例
查看>>
分布式存储-FastDFS
查看>>
iOS界面布局之三——纯代码的autoLayout及布局动画
查看>>
zabbix_server 3.0 安装
查看>>
Linux常用命令——find
查看>>
数据中台专栏(三):数据质量分析及提升
查看>>
iOS多点触控与手势识别
查看>>
Sql server--索引
查看>>
UML建模工具
查看>>
视频合成软件哪个好,怎么把多个视频快速合并成一个视频
查看>>
在Linux系统中创建SSH服务器别名
查看>>
【JMS 4】spring 整合activemq
查看>>
PDF文档页码怎么设置
查看>>
java单例模式
查看>>
多线程基础 (八)NSOperation相关
查看>>
【已解决】PHP项目需求:在现有网站中每个页面增加一个get参数
查看>>