Java中代理模式分为两种:静态代理和动态代理,本篇文章主要介绍静态代理。
静态代理模式由三个部分构成:
package com.design.pattern.proxy;
/**
*
* 出租房子接口
*
*/
public interface RentHouse {
/**
* 出租房子
*/
void rentHouse();
}
package com.design.pattern.proxy;
/**
* 房东
*/
public class Landlord implements RentHouse {
@Override
public void rentHouse() {
System.out.println("我是房东,我有房子要出租...");
}
}
package com.design.pattern.proxy;
/**
*
* 中介
*
*/
public class Lntermediary implements RentHouse {
// 通过组合的方式与被代理类产生联系
private Landlord landlord;
public Lntermediary(Landlord landlord){
this.landlord = landlord;
}
@Override
public void rentHouse() {
System.out.println("我是中介,我帮房东出租房子...");
//调用房东的rentHouse()
landlord.rentHouse();
System.out.println("我是中介,房子出租成功,我收取一个月房租作为代理费...");
}
}
package com.design.pattern.proxy;
public class TestProxyStatic {
/**
* 静态代理测试
*/
public static void main(String[] args) {
//创建一个房东
Landlord landlord = new Landlord();
//创建一个中间商
Lntermediary lntermediary = new Lntermediary(landlord);
//客户也可以通过中介租房子
lntermediary.rentHouse();
}
}
System.out: 我是中介,我帮房东出租房子...
System.out: 我是房东,我有房子要出租...
System.out: 我是中介,房子出租成功,我收取一个月房租作为代理费...
所谓代理模式是指客户端并不直接调用实际的对象,而是通过调用代理对象,来间接的调用实际的对象。通俗的来讲代
理模式就是我们生活中常见的中介