zoukankan      html  css  js  c++  java
  • 代理模式

    代理模式是Java常见的设计模式之一。所谓代理模式是指客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象。
    为什么要采用这种间接的形式来调用对象呢?一般是因为客户端不想直接访问实际的对象,或者访问实际的对象存在困难,因此通过一个代理对象来完成间接的访问。
    在现实生活中,这种情形非常的常见,比如请一个律师代理来打官司。

    public interface Subject {
        void visit();
    }

    实现了Subject接口的两个类:

    public class RealSubject implements Subject {
    
        private String name = "byhieg";
        @Override
        public void visit() {
            System.out.println(name);
        }
    }
    public class ProxySubject implements Subject{
    
        private Subject subject;
    
        public ProxySubject(Subject subject) {
            this.subject = subject;
        }
    
        @Override
        public void visit() {
            subject.visit();
        }
    }

    客户端调用

    public class Client {
    
        public static void main(String[] args) {
            ProxySubject subject = new ProxySubject(new RealSubject());
            subject.visit();
        }
    }

    通过上面的代理代码,我们可以看出代理模式的特点,代理类接受一个Subject接口的对象,任何实现该接口的对象,都可以通过代理类进行代理,增加了通用性。但是也有缺点,每一个代理类都必须实现一遍委托类(也就是realsubject)的接口,如果接口增加方法,则代理类也必须跟着修改。其次,代理类每一个接口对象对应一个委托对象,如果委托对象非常多,则静态代理类就非常臃肿,难以胜任。

  • 相关阅读:
    C/C++分别读取文件的一行
    (转载)C库函数strtok()
    (转载)C++常量折叠和C语言中const常量对比
    ssh
    ubuntu ufw
    uplevel
    ubuntu lucid source.list
    tail
    socket client with proc
    pack forget
  • 原文地址:https://www.cnblogs.com/gczr/p/8581535.html
Copyright © 2011-2022 走看看