六大原则 动态代理

2019-05-17  本文已影响0人  不存在的里皮

参考

  1. 六大原则
  2. 代理模式 介绍了三种代理:静态代理、Proxy、cglib
  3. java 动态代理详解
    • 介绍了动态代理具体案例
    • 代理模式的三种角色:
      1. AppServiceImpl: 委托类
      2. InvokeHandler: 中介类
      3. 动态生成的class: 代理类, 由Proxy运行时动态生成
    • 代理模式的三种角色是如何配合工作的:
    1. InvokeHandler通过持有委托类对象的引用的方式,与委托类建立静态代理联系。在此,InvokeHandler为中介类
    2. 然后,通过动态生成类的方式,创建代理类,与中介类建立联系。

动态代理、装饰模式的实践

装饰者模式和代理模式的区别

代理模式中,中介类与委托类的关系,在编写中介类时就确定了。中介类会控制对委托类对象的访问,。
装饰者模式的装饰关系是在运行时才知道,比如下面的代码。

//装饰器模式
public class Decorator implements Component{
        private Component component;
        // 无法确定装饰的对象是哪个具体类
        public Decorator(Component component){
            this.component = component
        }
       public void operation(){
            ….
            component.operation();
            ….
       }
}

//装饰器的客户
public class Client{
        public static void main(String[] args){
            // 编程者指定了装饰者需要装饰的是哪一个类
            Component component = new Decorator(new ConcreteComponent());
            …
        }
}
上一篇下一篇

猜你喜欢

热点阅读