当前位置: 首页 > news >正文

陕西网站建设推广公司西安seo关键词排名优化

陕西网站建设推广公司,西安seo关键词排名优化,vs2015可以做网站么,无锡百度公司代理商10. 代理模式 案例 10.1 静态代理 角色分析 抽象角色#xff1a;一般使用接口或者抽象类实现。真实角色#xff1a;被代理的角色。代理角色#xff1a;代理真实角色#xff0c;含附属操作。客户#xff1a;访问代理对象的角色。 租房案例 定义租赁接口 /*** TODO* 租房*…10. 代理模式 案例 10.1 静态代理 角色分析 抽象角色一般使用接口或者抽象类实现。真实角色被代理的角色。代理角色代理真实角色含附属操作。客户访问代理对象的角色。 租房案例 定义租赁接口 /*** TODO* 租房* author why* since 2021/7/6 9:06*/ public interface Rent {public void rent(); }定义真实角色 /*** TODO* 房东* author why* since 2021/7/6 9:10*/ public class Landlord implements Rent {public void rent() {System.out.println(房东要出租房子);} }定义代理角色 /*** TODO* 中介* author why* since 2021/7/6 9:14*/ public class Proxy implements Rent {private Landlord landlord;public Proxy() {}public Proxy(Landlord landlord) {this.landlord landlord;}/*** 出租房子*/public void rent() {seeHouse();landlord.rent();signContract();fee();}/*** 看房*/public void seeHouse(){System.out.println(中介带租客看房);}/*** 收中介费*/public void fee(){System.out.println(收中介费);}/*** 签合同*/public void signContract(){System.out.println(签租赁合同);}}客户端访问代理角色 /*** TODO* 租客* author why* since 2021/7/6 9:12*/ public class Client {public static void main(String[] args) {// 房东想要出租房子Landlord landlord new Landlord();// 中介帮助房东出租房子包含了附加操作Proxy proxy new Proxy(landlord);// 租客找中介租房子proxy.rent();} }模式优点 可以使真实角色的操作更加纯粹不必关注一些公共业务。公共业务交给代理角色实现了业务的分工。公共业务发生扩展时方便集中管理。 模式缺点 一个真实角色就会产生一个代理角色代码量会翻倍开发效率会变低。 业务模拟 抽象 AOP 机制 定义用户操作接口 /*** TODO* 用户服务接口* author why* since 2021/7/6 9:38*/ public interface UserService {public void add();public void delete();public void update();public void query(); }定义业务操作实现类 /*** TODO* 用户接口实现类真实对象* author why* since 2021/7/6 9:40*/ public class UserServiceImpl implements UserService {public void add() {System.out.println(增加一个用户);}public void delete() {System.out.println(删除一个用户);}public void update() {System.out.println(修改一个用户);}public void query() {System.out.println(查询一个用户);} }定义代理 /*** TODO* 代理* author why* since 2021/7/6 9:57*/ public class UserServiceProxy implements UserService {private UserService userService;public void setUserService(UserService userService) {this.userService userService;}public void add() {log(add);userService.add();}public void delete() {log(delete);userService.delete();}public void update() {log(update);userService.update();}public void query() {log(query);userService.query();}// 日志方法public void log(String msg) {System.out.println([Debug] 使用了 msg 方法);} }定义客户端 /*** TODO* 客户端* author why* since 2021/7/6 9:44*/ public class Client {public static void main(String[] args) {UserServiceImpl userService new UserServiceImpl();UserServiceProxy userServiceProxy new UserServiceProxy();userServiceProxy.setUserService(userService);userServiceProxy.add();} }10.2 动态代理 动态代理和静态代理的角色一样 动态代理的代理类是动态生成的不需要编写。 动态代理分为基于接口的动态代理和基于类的动态代理。 基于接口 — JDK 动态代理基于类 — CGLIBJava 字节码实现 — Javasist 租房案例 定义租赁接口 /*** TODO* 租房* author why* since 2021/7/6 9:06*/ public interface Rent {public void rent(); }定义真实角色房东 /*** TODO* 房东* author why* since 2021/7/6 9:10*/ public class Landlord implements Rent {public void rent() {System.out.println(房东要出租房子);} }构造代理类生成器 /*** TODO* 自动生成代理类* author why* since 2021/7/6 13:43*/ public class ProxyInvocationHandler implements InvocationHandler {// 被代理的接口private Rent rent;public void setRent(Rent rent) {this.rent rent;}// 获得代理类public Object getProxy(){return Proxy.newProxyInstance(this.getClass().getClassLoader(), rent.getClass().getInterfaces(), this);}// 处理代理实例并返回结果public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {// 动态代理由反射机制实现Object result method.invoke(rent, args);return result;} }定义客户端 /*** TODO* 客户端* author why* since 2021/7/6 13:54*/ public class Client {public static void main(String[] args) {// 真实角色Landlord landlord new Landlord();// 代理角色由 InvocationHandler 获取ProxyInvocationHandler pih new ProxyInvocationHandler();// 通过调用处理程序处理要调用的接口对象pih.setRent(landlord);Rent proxy (Rent) pih.getProxy();proxy.rent();} }模式优点 可以使真实角色的操作更加纯粹不必关注一些公共业务。公共业务交给代理角色实现了业务的分工。公共业务发生扩展时方便集中管理。一个动态代理类代理的是一个接口一般就是一类业务。一个动态代理可以代理多个类前提是这些类实现了同一个接口。 业务模拟 定义用户操作接口 /*** TODO* 用户服务接口* author why* since 2021/7/6 9:38*/ public interface UserService {public void add();public void delete();public void update();public void query(); }定义业务操作实现类 /*** TODO* 用户接口实现类真实对象* author why* since 2021/7/6 9:40*/ public class UserServiceImpl implements UserService {public void add() {System.out.println(增加一个用户);}public void delete() {System.out.println(删除一个用户);}public void update() {System.out.println(修改一个用户);}public void query() {System.out.println(查询一个用户);} }定义代理生成器 /*** TODO* 自动生成代理类* author why* since 2021/7/6 13:43*/ public class ProxyInvocationHandler implements InvocationHandler {// 被代理的接口private Object target;public void setTarget(Object target) {this.target target;}// 获得代理类public Object getProxy(){return Proxy.newProxyInstance(this.getClass().getClassLoader(), target.getClass().getInterfaces(), this);}// 处理代理实例并返回结果public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {log(method.getName());// 动态代理由反射机制实现return method.invoke(target, args);}public void log(String msg){System.out.println(执行了 msg 方法);} }定义客户端 /*** TODO* 客户端* author why* since 2021/7/6 15:00*/ public class Client {public static void main(String[] args) {UserServiceImpl userService new UserServiceImpl();ProxyInvocationHandler pih new ProxyInvocationHandler();pih.setTarget(userService);UserService proxy (UserService) pih.getProxy();proxy.add();} }
http://www.hkea.cn/news/14592562/

相关文章:

  • 免费素材下载网站有哪些对网站开发的理解
  • 一键建站平台代注册公司要多少钱
  • 信息网站建设的意义企业推广的成功在于他们发现
  • 会展网站的建设情况金华网站建设平台
  • 深圳高端网站制作多少钱兰州最新消息今天
  • 做淘宝客个人网站广告公司活动策划公司
  • 建设安全备案登入那个网站网站开发合同受托方
  • 网站建设 jsp php哪里找做网站的公司
  • 四川省住房和城乡建设厅官网站网全国封城名单
  • 展示型网站首页设计解析怎样做省钱购物网站
  • 深圳龙岗网站建设哪家好公司如何做商业网站推广
  • 有哪些好点的单页网站盐山联通大厦 网站建设
  • 博物馆 网站 建设网站开发如何跟客户沟通需求
  • 网站做付款页面微信菜单栏那些网站怎么做
  • 网站设计哪家便宜电影网站做淘宝联盟
  • 现在什么省网站备案最快网站建设代理商电话
  • 河南专业网站建设公司排名手机网站建设多钱
  • 网站的优化和推广方案怎么写扬之云公司网站建设
  • 沈阳网站建设建设公司做政协网站软件的公司
  • 免费二级网站云南网站建设优化企业
  • 开发手机端网站模板wordpress 图片位置
  • wix做的网站南充城市建设投诉网站
  • 网站制作视频课程北京高端品牌网站定制
  • 国外网站源代码学校网站建设要多少钱
  • 企业官方网站建设目的小程序注册哪类商标
  • 做感恩网站的图片大全软件外包平台
  • 两个彩票网站做赔付网站空间免备案
  • 刷评论网站推广房和城乡建设部网站
  • 登录建设官方网站企业培训计划
  • dede中英文网站合肥网站建设电话咨询