代理模式
代理模式作为一种比较常用的设计模式,顾名思义,你需要一个牛逼的代理,打个比方,你要是想要接触一些大牌明星,明面上基本上见不着的,这时候你就需要一个访问层,比如她的经理人之类的,间接地传达一些消息,否者会对明星的生活带来很多困扰,基于这种思想,代理模式也就很好理解了,就是为了让你间接地控制一些敏感的对象,八道不胡说,先上代码
IUser.java
public interface IUser { public void whoAreYou(); }
User.java
public class User implements IUser { private String name; public User(String name){ this.name = name; init(); } public void init(){ System.out.println("init:"+name); } @Override public void whoAreYou() { System.out.println("begin:"+name); } }
Proxy.java
public class Proxy implements IUser { private String name; private User user; public Proxy(String name){ this.name = name; } @Override public void whoAreYou() { if (user == null){ user = new User(name); } user.whoAreYou(); } }
TestProxy.java
public class TestProxy { public static void main(String[] args) { IUser proxy = new Proxy("zs"); proxy.whoAreYou(); System.out.println("---贫富分割线---"); proxy.whoAreYou(); } }
Run result
init:zs begin:zs ---贫富分割线--- begin:zs
作为一种优秀的结构型模式,从上述代码可看出利用Proxy类可以访问User中的方法,这种方式较为安全,在对象处理上,采用了Lazy loading的思想,避免浪费资源
来源:https://www.cnblogs.com/demonycw/p/12102843.html