java 代理模式 静态代理和动态代理

来源:互联网 发布:淘宝如何设置包邮 编辑:程序博客网 时间:2024/05/06 15:11

每一次看完一本书,或者学习过每一个知识点,很快就会忘记了,所以从今天开始要把所学习到的内容记录下来,包括文章的内容要完整,结构清晰,排版简明。2017/8/14 从今天就开始了。
代理模式
顾名思义就是对一个对象的代理,就是代理对象去代理一个对象去执行某些方法。

代理模式根据代理对象创建时期分为静态代理,动态代理。
静态代理:代理对象编译时期生成,
动态代理:代理对象在程序运行期间通过反射机制生成。
静态代理
下面就是一个静态代理的例子。从例子直观上看感觉是繁琐了一步,工厂类直接可以完成的动作,为什么要加上一个代理再去执行呢?
个人的理解 :既然用到代理类,就是说工厂类的方法不能达到自己的需求,而且还不能去更改工厂类的方法和属性,所以从外面封装一层满足自己的需求,也同时达到了解耦的目的。就是每个层次只负责每个层次的方法。

/** * 销售接口 * @version 2017年8月14日 上午10:05:03 */public interface Sell {    /*销售*/    void toSell(String content);}
/** * 工厂销售类 * @version 2017年8月14日 上午10:06:25 */public class FactorySell implements Sell{    @Override    public void toSell(String content) {        System.out.println("工厂销售:" + content);    }}
public class ProxySell implements Sell{    private FactorySell factory;    public ProxySell(FactorySell factory){        this.factory = factory;    }    @Override    public void toSell(String content) {        //可以实现自己额外的需求        factory.toSell(content);    }    public static void main(String[] args) {        ProxySell proxy = new ProxySell(new FactorySell());        proxy.toSell("高科技产品");    }}

动态代理

原创粉丝点击