没有绝对的设计模式只要适用就好
代理模式分为两种:
静态代理:
动态代理:
其实代理模式是从自然界,现实生活中抽象而来,我们可以依照现实中的例子,来构建脑海中的 抽象概念:
静态代理 类比于 例如:在拨打10086的时候,代替人工服务的弱智能,此服务代替人工处理一些固定的业务,如此可以省下一些人力资源,但是程序是写死的,所以需要要变动必要改动代码或参数,也就是改动代理本身
动态代理 类比于 例如:在烈日下穿着白衬衫,打着蓝领带,赚取高额中间差价的房产中介商.
静态代理
静态代理是我们常用的一种设计模式, 在WEB开发里基于贫血模型的三层架构中 service层, 一般的体现方式就是 写一个 businessService接口,然后写一个 businessServiceImpl实现类来实现它.
所以一般在WEB开发的时候我们常用的就是静态代理.这证明一般来说静态代理对于业务层面来说是比较适用的
动态代理:
动态代理相较于静态代理来说其灵活度高了,但是其性能损耗也随之上升,动态代理比静态代理好的地方就是当被代理的接口或类增加新功能的时候,当前代理逻辑可以保持不变
动态代理细分为JDK动态代理和CGlib子类代理;
JDK动态代理:
CGlib子类代理