静态代理设计模式
1.角色分享:
【1.代理模式】抽象角色:一般使用接口或抽象类来实现。
真实角色:被代理的角色。(房东)
代理角色:代理真实角色---代理真实角色后一般会做一些附属操作。(中介)
客户:使用代理角色来进行一些操作。(我)
文章图片
类图-StarUML 2.代码实现
//抽象角色:Rent(interface):
public interface Rent {
public void rent();
}//真实角色:Host(class):
public class Host implements Rent{
@Override
public void rent() {
System.out.println("房东出租");
}
}
//代理角色:Proxy(class):
public class Proxy implements Rent{
privateHost host;
public Proxy() {
}
public Proxy(Host host) {
this.host = host;
}
public void setHost(Host host) {
this.host = host;
}
@Override
public void rent() {
renen();
host.rent();
renenn();
}
public void renen(){
System.out.println("中介带人看房");
}
public void renenn(){
System.out.println("中介收费");
}
}
//客户:Client(class):
public class Client {
public static void main(String[] args) {
Host host = new Host();
Proxy proxy = new Proxy(host);
proxy.rent();
}
}
3.优点:
- 可以使得我们的真实角色更加纯粹,不在去关注一些公共的事情
- 公共的业务由代理来完成---实现业务的分工。
- 公共业务扩展和修改时更加集中和方便
- 类多了---多了代理类,工作量变大。开发效率降低