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

网站源码在线提取廊坊百度快照优化排名

网站源码在线提取,廊坊百度快照优化排名,厦门做网站最好的公司,开封市网站建设文章目录 一、代理模式1、代理模式的好处和缺点1.1 代理模式理解加深 一、代理模式 为什么要学习代理模式? 代理模式是Spring AOP 以及 Spring MVC 的底层!!并且还是 JAVA 的23种设计模式之一!! 代理模式的分类&#…

文章目录

  • 一、代理模式
    • 1、代理模式的好处和缺点
      • 1.1 代理模式理解加深



一、代理模式

  • 为什么要学习代理模式?
代理模式是Spring AOP 以及 Spring MVC 的底层!!并且还是 JAVA 的23种设计模式之一!!
  • 代理模式的分类:

    • 静态代理

    • 动态代理

  • 什么是代理模式:

如果我们出现了诉求,但是因为某些原因我们本身不想或者无法完成这种诉求,我们就需要寻求他人的帮助,由他人来完成诉求,然后我们直接获取成果就可以了。

       打个比方:学生毕业之后工作是需要租房子的,但是学生通常找不到想要把房子租出去的房主,房主也不知道那些学生想要租房子。这时候学生和房主便可以找到中介,由中介来完成租房以及找房的这个过程。最终学生和房东只需要交笔中介费便达成了自己的目的。
  • 角色分析

    • 抽象角色: 比如房东想要把房子租出去这个行为。通常会使用接口或者抽象类来解决。
    • 真实角色: 被代理的角色,比如房东。
    • 代理角色: 代理真实角色,比如中介。代理真实角色后,我们一般会做一些附属操作,比如看房、签合同等。
    • 客户角色: 访问代理对象的人!比如租房子的人。


  • 代理模式代码演示

    • 抽象角色,房东将房子租出去的诉求

      public interface HouseRental {void houseRental();
      }
      
    • 真实角色,房东本身,也就是被代理的人

      public class Homeowner implements HouseRental{@Overridepublic void houseRental() {System.out.println("房东请求中介将房子出租出去");}
      }
      
    • 代理角色,比如中介,中介代理房东将房子出租出去,并且进行相关的操作

      public class Intermediary implements HouseRental{private Homeowner homeowner;public Intermediary(Homeowner homeowner) {this.homeowner = homeowner;}@Overridepublic void houseRental() {homeowner.houseRental();seeHouse();sign();fee();}//看房public void seeHouse(){System.out.println("中介带着看房子!");}//签合同public void sign(){System.out.println("和中介签署租赁合同!");}//收费用public void fee(){System.out.println("中介收取费用!");}}
      
    • 客户角色,比如想要租房子的人

      public class Client {public static void main(String[] args) {// 租户无需直接面对房东Homeowner homeowner = new Homeowner();// 房东找到了中介,请求把房主租出去Intermediary intermediary = new Intermediary(homeowner);// 租户找到了中介,请求租房子intermediary.houseRental();}
      }
      
    • 代码执行结果:
      在这里插入图片描述



1、代理模式的好处和缺点

  • 好处

    • 可以使真实角色的操作更加纯粹!不用去关注一些公共的业务

    • 公共角色就交给代理角色!实现了业务的分工!

    • 公共业务发生扩展的时候,方便集中管理!

  • 缺点

    • 一个真实角色就会产生一个代理角色,代码量级会翻倍,开发效率会降低。

1.1 代理模式理解加深

  • 业务场景:公司需要对用户进行增删改查操作

    • 接口

      public interface UserService {// 业务场景:公司需要对人员进行增删改查操作void add();void update();void delete();void query();}
      
    • 真实角色

      public class UserServiceImpl implements UserService{@Overridepublic void add() {System.out.println("增加了一个用户");}@Overridepublic void update() {System.out.println("修改了一个用户");}@Overridepublic void delete() {System.out.println("删除了一个用户");}@Overridepublic void query() {System.out.println("查询用户信息");}
      }
      
    • 客户端角色访问

      public class Client {public static void main(String[] args) {UserServiceImpl userService = new UserServiceImpl();userService.update();}
      }
      
    • 执行结果:修改了一个用户


  • 业务变更:公司需要对用户进行增删改查操作的同时需要将对应的操作行为以日志的形式打印出来

    • 如果在操作的同时将日志打印出来的话其实也可以,但是会有大量的代码重复操作,并且代码原则通常是不修改原本好用的代码,如果有变动一般以新增代码为主

      • 接口以及真实角色实现类内容不变,创建代理角色

        public class Proxy implements UserService{// 将真实角色进行代理private UserServiceImpl userService;// 通过 Set 方法完成代理动作public void setUserService(UserServiceImpl 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 mag){System.out.println("执行了" + mag +"方法");}
        }
        
      • 客户端调用代理角色

        public class Client {public static void main(String[] args) {// 客户端调用真实角色UserServiceImpl userService = new UserServiceImpl();// 真实角色将部分内容交给代理角色处理Proxy proxy = new Proxy();proxy.setUserService(userService);proxy.add();proxy.delete();proxy.update();proxy.query();}
        }
        
      • 执行结果

        在这里插入图片描述

http://www.qdjiajiao.com/news/8892.html

相关文章:

  • 小组用jsp做的网站论文全国seo搜索排名优化公司
  • 企业企业网站建设优化大师电脑版
  • 网站后台管理系统源代码seo快速排名上首页
  • 淘宝客建立网站推广怎么做网页设计大作业
  • 宁波网络建站公司有哪些百度怎么推广自己的店铺
  • 合肥外贸网站建设公司网上在线看视频为什么卡
  • 站长网站seo查询网络优化软件
  • 企业网站有哪些举例网站权重是怎么提升的
  • 网站管理系统源码网站建设找哪家公司好
  • 北京网站建设培训网络软件开发
  • 自己可以建设环保公益网站吗怎么宣传自己新开的店铺
  • 大连可以做网站的公司搜索引擎优化的意思
  • 网站标题优化网络营销运营策划
  • 网站建设主机类型怎么选软文推广案例
  • 做360手机网站googlechrome浏览器
  • 重庆有哪些做网站的公司seo引擎优化工具
  • 无水印视频素材下载免费网站广告网站大全
  • 哪些品牌网站做的好网络推广竞价外包
  • 做哪些网站不受法律保护奇零seo赚钱培训
  • 做一家新闻媒体网站多少钱seo关键词优化排名外包
  • 安达网站制作seo是什么部位
  • 域名备案查询站长之家抖音seo供应商
  • 天津建站商城搜索引擎的两个基本方法
  • 网站分页效果北京seo关键词排名优化软件
  • wordpress不显示作者seo发帖软件
  • 云服务器快速安装wordpressseo优化名词解释
  • 沈阳做网站企业福州seo代理计费
  • 有哪些做淘宝素材的网站泉州网站建设优化
  • php网站跟随导航在线网页编辑平台
  • 巩义专业网站建设公司推荐百度指数有哪些功能