1.代理模式的静态代理有两种实现方式。第一种是继承一个类,然后对该类的方法进行包装后使用。另一种是聚合,用类做成员变量进行包装后使用
2.一般推荐使用聚合来实现代理。通俗的讲,如果使用继承实现代理,每增加一个代理功能就要重新增加一个子类。例如:对于被代理类先包装功能1,再包装功能2,要新建一个子类实现。先包装功能2,再包装功能1又需要新建一个子类实现。而如果使用聚合的方式实现代理则不需如此麻烦,原因:每一个代理功能是一个类。先实现功能1就先用1之后再用2,不用新建什么东西。
3.jdk动态代理: