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

本文共 1976 字,大约阅读时间需要 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();    }}

 

 

转载于:https://www.cnblogs.com/insus/archive/2013/02/27/2935081.html

你可能感兴趣的文章
[kuangbin带你飞]专题四 最短路练习 H - Cow Contest (floyed传递背包)
查看>>
[kuangbin带你飞]专题四 最短路练习 J - Invitation Cards
查看>>
[kuangbin带你飞]专题四 最短路练习 I - Arbitrage(判断负环)
查看>>
[kuangbin带你飞]专题五 并查集 C - How Many Tables
查看>>
[kuangbin带你飞]专题五 并查集 A - Wireless Network
查看>>
[kuangbin带你飞]专题五 并查集 E - 食物链 (带权并查集)
查看>>
[kuangbin带你飞]专题五 并查集 D - How Many Answers Are Wrong(带权并查集)
查看>>
[kuangbin带你飞]专题六 最小生成树C - Building a Space Station
查看>>
[kuangbin带你飞]专题五 并查集 J - A Bug's Life (带权并查集)
查看>>
[kuangbin带你飞]专题六 最小生成树 E - QS Network
查看>>
[kuangbin带你飞]专题六 最小生成树 D - Constructing Roads
查看>>
[kuangbin带你飞]专题六 最小生成树 H - Highways
查看>>
[kuangbin带你飞]专题六 最小生成树 G - Arctic Network
查看>>
[kuangbin带你飞]专题六 最小生成树 J - Borg Maze
查看>>
[kuangbin带你飞]专题六 最小生成树 I - Agri-Net
查看>>
[kuangbin带你飞]专题六 最小生成树 K - The Unique MST (判断最小生成树是否唯一)...
查看>>
[kuangbin带你飞]专题六 最小生成树 L - 还是畅通工程 (简单最小生成树)
查看>>
计蒜客 最长不下降子序列 (贪心+二分nlogn算法)
查看>>
[kuangbin带你飞]专题十二 基础DP1 C - Monkey and Banana HDU - 1069
查看>>
Relatives POJ - 2407(不打表的欧拉函数 单求)
查看>>