静态代理模式
1. 角色
抽象角色:一般使用接口或者抽象类来实现,是整个真实角色想要做的事,例如房东想要出租房子,出租房子是房东想做的事
真实角色:被代理的角色,例如房东
代理角色:代理真实角色,代理真实角色后,一般会做一些附属操作,例如中介,中介会代理房东完成租房这件事,但是也会有附属操作:陪客户看房,签合同(这里就是增强的功能)
客户:使用代理角色来进行一些操作,例如看房的人
抽象角色(这里是接口,是租房这个动作):
真实角色:
Proxy代理角色(在调用房东租房的功能后还自己增加了看房和收中介费的功能):
看房客(与代理接触而不接触真实角色):
2. 静态代理的好处
- 可以使我们的真实角色更加纯粹,不再去关注一些公共的事情,而只专注与核心业务代理
- 公共的业务代码由代理去完成,实现了业务的分工
- 公共业务发生扩展时变得更加集中和方便
3. 静态代理的缺点
- 类多了,代理类也就多了,工作量变大了,
开发效率也就低了