zoukankan      html  css  js  c++  java
  • C# 设计模式-代理模式

    一.介绍  

      代理模式(Proxy Pattern)。属于结构型模式。为其它对象提供一种代理以控制对该对象的访问。

    二.实现

      代理的概念很简单,就是想调用A类方法时,不直接调用,而是通过调用代理B类的方法,由B类方法去调用A类的方法。

    /// <summary>
    /// 抽象主题角色
    /// </summary>
    public interface IPeople
    {
        void Say();
    }
    
    /// <summary>
    /// 真实主题角色
    /// </summary>
    public class APeople : IPeople
    {
        public void Say()
        {
            Console.WriteLine("今天xxx");
        }
    }
    
    /// <summary>
    /// 代理
    /// </summary>
    public class Proxy : IPeople
    {
        IPeople aPeople;
    
        public Proxy()
        {
            this.aPeople = new APeople() ;
        }
    
        public void Say()
        {
            Console.WriteLine("A说了:");
            aPeople.Say();
        }
    }
    
    //调用
    public static void Main(string[] args)
    {
        IPeople proxy = new Proxy();
        proxy.Say();
    }

    三.总结

      优点:

      1.代理模式能够将调用用于真正被调用的对象隔离,在一定程度上降低了系统的耦合度。

      2.代理对象在客户端和目标对象之间起到了一个中介的作用,这样可以起到对目标对象的保护。代理对象可以在对目标对象发起请求之前进行额外操作,比如权限检查。

      缺点:

      1.由于在客户端和目标对象之间增加了一个代理对象,会造成请求处理的速度变慢。

      2.实现代理类会增加额外的代码量,从而增加系统的复杂程度。

  • 相关阅读:
    迪杰斯特拉算法
    基数排序
    快排算法
    插入排序与希尔排序算法
    java--jmm知识
    Java基础
    socket代理
    TestLink 学习第一周
    软件体系结构第三章之解释器风格
    如何衡量个人在各自团队的效率和绩效
  • 原文地址:https://www.cnblogs.com/shadoll/p/14289637.html
Copyright © 2011-2022 走看看