1.代理模式
代理模式示意图:
静态代理
代理模式的好处:
缺点:
例子:
先上使用方法------用户使用
public class Client { public static void main (String[] args) { UserServiceImpl userService =new UserServiceImpl(); UserServiceProxy proxy = new UserServiceProxy(); proxy.setUserServiceImpl(userService); proxy.add(); proxy.delete(); proxy.upadte(); } }
一般用户接口(增删改查)
1 public interface UserService { 2 public void add(); 3 public void upadte(); 4 public void query(); 5 public void delete(); 6 }
实现接口方法
1 public class UserServiceImpl implements UserService { 2 3 4 public void add () { 5 System.out.println("添加"); 6 } 7 8 public void upadte () { 9 System.out.println("更新"); 10 } 11 12 public void query () { 13 System.out.println("查询"); 14 } 15 16 public void delete () { 17 System.out.println("删除"); 18 } 19 }
代理类
1 public class UserServiceProxy implements UserService 2 { 3 private UserServiceImpl userServiceImpl; 4 5 public void setUserServiceImpl (UserServiceImpl userServiceImpl) { 6 this.userServiceImpl = userServiceImpl; 7 } 8 9 public void add () { 10 log(); 11 userServiceImpl.add(); 12 } 13 14 public void upadte () { 15 log(); 16 userServiceImpl.upadte(); 17 } 18 19 public void query () { 20 log(); 21 userServiceImpl.query(); 22 } 23 24 public void delete () { 25 log(); 26 userServiceImpl.delete(); 27 } 28 public void log(){ 29 System.out.println("新加的业务,不能改变原有代码"); 30 } 31 }
动态代理
原文:https://www.cnblogs.com/blogger-Li/p/12247733.html