静态代理
Posted zgmzbhqa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态代理相关的知识,希望对你有一定的参考价值。
面向接口编程
静态代理模式:
真实对象与代理对象都要实现同一接口
代理对象要代理真实对象
好处:
1.真实对象只专注做自己的事情
2.代理对象可以做很多真实对象做不了的事情。
(例如,你结婚,总体上看是婚礼公司在操办结婚,但你自己只需要当自己新郎新娘就行了,最关键的部分还是你,婚礼公司做了很多其他的事情)
(例如,你租房,去房产中介租房,你只需要看要不要租这个房子,其他事情有房产中介做,总体上看是房产中介代理你去租房,完成一系列租房操作)
(例如,多线程实现用Runnable接口实现时,用到了静态代理)
public class StaticProxy { public static void main(String[] args) { Rent r = new Worker("张三");//父类引用指向子类对象 Intermediary intermediary = new Intermediary(r); intermediary.rentAnApartment(); } } //找房子功能接口 interface Rent{ void rentAnApartment(); } //自己亲自去找房子 class Worker implements Rent{ private String name; public String getName() { return name; } public Worker(String name) { this.name = name; } @Override public void rentAnApartment() { System.out.println(this.name+"亲自去看房子,判断要不要租这个房子!"); } } //中介帮你找房子 class Intermediary implements Rent{ private Rent target;//注意这里是接口 public Intermediary(Rent target) { this.target = target; } @Override public void rentAnApartment() { this.before(); this.target.rentAnApartment(); this.after(); } private void after() { System.out.println("跟中介商量价格!"); } private void before() { System.out.println("房屋中介给你住房信息!"); } }
以上是关于静态代理的主要内容,如果未能解决你的问题,请参考以下文章