08 设计模式 静态代理
Posted shimeath
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了08 设计模式 静态代理相关的知识,希望对你有一定的参考价值。
静态代理
例如:在租房时候,不需要直接去找房东,只要去找中介,中介会将房子租给我们,而我们不必和房东接触,便可以租下来房子
首先创建一个接口,代表租房这个事情
public interface Rent {
public void rent();
}
然后再创建一个类代表房东,实现了租房这个接口
public class Landlord implements Rent{
@Override
public void rent() {
System.out.println("出租房屋");
}
}
在没有中介的时候,房东需要自己和我们打交道
public static void main(String[] args) {
Landlord landlord = new Landlord();
landlord.rent();
}
这时,房东觉得很麻烦,于是就找了个房屋中介
public class Agent implements Rent{
Landlord landlord;
Agent(Landlord landlord){
this.landlord = landlord;
}
@Override
public void rent() {
clean();
contract();
landlord.rent();
fare();
}
public void clean(){
System.out.println("打扫房屋");
}
public void contract(){
System.out.println("签订合同");
}
public void fare(){
System.out.println("收租");
}
}
这样有了中介之后,房东不需要操心租房这件事了,中介在其中做了一些处理,最后将房屋租给我们,这就是一个典型的静态代理
以上是关于08 设计模式 静态代理的主要内容,如果未能解决你的问题,请参考以下文章
设计模式 结构型模式 -- 代理模式(动态代理(CGLIB动态代理)三种代理的对比(静态代理动态代理(JDK代理和CGLIB代理)优缺点使用场景))