设计模式之“代理模式”

代理(Proxy)模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用。

代理模式的英文叫做Proxy或Surrogate,中文都可译成"代理"。所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

类图:

实例:

代理执行远程方法

 public interface IMath
    {
        // Methods
        double Add(double x, double y);
        double Sub(double x, double y);

    }
   public class Math : MarshalByRefObject, IMath
    {
        // Methods
        public double Add(double x, double y) { return x + y; }
        public double Sub(double x, double y) { return x - y; }

    }
   public class MathProxy : IMath
    {
        // Fields
        Math math;

        // Constructors
        public MathProxy()
        {
            // Create Math instance in a different AppDomain
            AppDomain ad = System.AppDomain.CreateDomain("MathDomain", null, null);
            ObjectHandle o = ad.CreateInstance("TestDesgine", "TestDesgine.Math", false,
              System.Reflection.BindingFlags.CreateInstance, null, null, null, null, null);
            math = (Math)o.Unwrap();
        }

        // Methods
        public double Add(double x, double y)
        {
            return math.Add(x, y);
        }
        public double Sub(double x, double y)
        {
            return math.Sub(x, y);
        }
      
    }

 

 

转载于:https://www.cnblogs.com/65702708/p/3197085.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值