1.userService 用户统一的行为接口,定义用户相关管理办法
2.实现类,代码具体实现相关功能,都需要实现userService接口
3.代理类,在不改变原有代码的基础上实现功能拓展,这里只增加了一个日志功能
4.client客户端,通过代理类来实现业务功能
5.输出结果,可以看到通过代理模式增加1个log()方法,即可实现日志功能的实现
通过代理模式,避免对底层源代码的修改,只需要增加代理类或增加代理类中的方法即可实现功能的拓展 ,底层代码的操作更加纯粹,不再关注一些公共的业务,实现的代码的解耦。
公共业务发生拓展时更方便集中管理,实现业务的分工。
缺点:一个实现类会产生一个代理类,代码量会使开发效率变低。