欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

#静态代理

时间:2023-07-30

一般来说,静态代理中的代理类和委托类将实现相同界面,或者相同的父类。

//真实对象和代理对象都要实现同一接口

优点

代理对象可做很多真实对象做不了的事情

真实对象专注自己的事情

public class StaticProxy { public static void main(String[] args) { You you = new You();//你要结婚 new Thread(()-> System.out.println("i love you")).start(); new WeddingCompany(new You()).HappyMarry(); //WeddingCompany weddingCompany = new WeddingCompany(new You()); //weddingCompany.HappyMarry(); }}interface Marry{ void HappyMarry();}//目标对象class You implements Marry{ @Override public void HappyMarry(){ System.out.println("热巴要结婚,敲开心"); }}//代理对象class WeddingCompany implements Marry{ //结婚对象 private Marry target; public WeddingCompany(Marry target){ this.target=target; } @Override public void HappyMarry() { //之前 before(); this.target.HappyMarry(); after(); } private void before(){ System.out.println("结婚之前,布置现场"); } private void after(){ System.out.println("结婚之后,收尾款"); }}


– 优点

静态代理类和委托类实现了相同的接口,代理类通过委托类实现了相同的方法这样就出现了大量的代码重复。

如果接口增加一个方法,除了所有实现类需要实现这个方法外,所有代理类也需要实现此方法。增加了代码维护的复杂度。

静态代理对象只服务于一种类型的对象,如果要服务多类型的对象。势必要为每一种对象都进行代理,静态代理在程序规模稍大时就无法胜任了。-

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。