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

昆明网站建设seo公司哪家好为什么没人做物流网站

昆明网站建设seo公司哪家好,为什么没人做物流网站,没学过计算机开始学做网站,免费网站怎么制作系列文章目录 #xff08;其他设计模式可以参考 #x1f449;#x1f449;#x1f449;#xff09;设计模式_小杰不秃头的博客 #x1f60a;#x1f604;#x1f61b; 前言 今天继续给大家介绍23种设计模式中的代理模式#xff0c;熟悉Spring的小伙伴都知道#xf…系列文章目录 其他设计模式可以参考 设计模式_小杰不秃头的博客  前言 今天继续给大家介绍23种设计模式中的代理模式熟悉Spring的小伙伴都知道Aop使用的就是代理模式所以代理模式还是非常重要的在工作中用的也是非常的多。 一、代理模式 代理模式Proxy Pattern是面向对象编程中的一种设计模式它为其他对象提供一个代理或占位符以控制对这个对象的访问。代理对象在客户端和目标对象之间起到中介的作用客户端并不直接与目标对象交互而是通过代理对象来间接调用目标对象的方法。简单理解就是“房子中介”的一个角色 特点 中介作用代理对象作为客户端和目标对象之间的中介可以拦截或修改客户端对目标对象的请求。功能增强可以在不修改目标对象代码的前提下通过代理对象为目标对象增加额外的功能。如Spring中的AOP控制访问代理对象可以控制对目标对象的访问比如检查权限、记录日志、实现延迟加载等。 举一个简单的例子帮助大家理解假如说你想买一个房子但是你没有时间去挑选所以你就找了一个房子中介帮你去找房子这个过程就是一个代理的过程房子中介就是一个代理对象。 二、静态代理 1、静态代理定义和特点 静态代理Static Proxy是在程序编译时确定代理类的代码代理类和目标类实现了相同的接口。静态代理的实现相对简单代理对象和目标对象实现相同的接口客户端通过代理对象调用目标对象的方法。 特点静态代理需要手动编写代理类的代码因此当接口发生变化时代理类也需要相应地修改。由于代理类在编译期间就已经确定因此性能相对较高。但是静态代理只能为给定接口的实现类做代理如果接口不同则需要重新定义不同的代理类。 2、使用场景 使用场景静态代理通常用于为一些功能较为简单的类提供代理如增加日志记录、性能监控等功能。由于静态代理需要手动编写代理类的代码因此它通常适用于接口稳定、功能较为简单的场景。 3、静态代理的简单实现 这里举一个比较粗糙的例子模拟插入订单的这个业务场景。 跟我们平时开发的一样首先创建实体类Order public class Order {private String info;private String userId;public String getInfo() {return info;}public void setInfo(String info) {this.info info;}public String getUserId() {return userId;}public void setUserId(String userId) {this.userId userId;}Overridepublic String toString() {return Order{ info info \ , userId userId \ };} } 创建持久层的接口和实现类 public interface OrderDao {int insertOrder(Order order); }public class OrderDaoImpl implements OrderDao {Overridepublic int insertOrder(Order order) {System.out.println(持久层...插入订单...order.toString());return 1;} } 创建服务层的接口和实现类 public interface OrderService {int insertOrder(Order order); }public class OrderServiceImpl implements OrderService {private OrderDao orderDao;Overridepublic int insertOrder(Order order) {orderDao new OrderDaoImpl();System.out.println(业务层...调用持久层insertOrder方法...);return orderDao.insertOrder(order);} } 关键一步创建静态代理对象 public class OrderServiceImplStaticProxy {private OrderService orderService;public int insertOrder(Order order){before();orderService new OrderServiceImpl();int result orderService.insertOrder(order);after();return result;}private void after() {System.out.println(静态代理对象...提交事务...);}private void before() {System.out.println(静态代理对象...开启事务...);} } 测试 public class Test {public static void main(String[] args) {Order order new Order();order.setInfo(xxxx笔记本电脑);order.setUserId(1);OrderServiceImplStaticProxy proxy new OrderServiceImplStaticProxy();proxy.insertOrder(order);} }/*打印结果 静态代理对象...开启事务... 业务层...调用持久层insertOrder方法... 持久层...插入订单...Order{infoxxxx笔记本电脑, userId1} 静态代理对象...提交事务... */ 三、动态代理 1、动态代理定义和特点 动态代理Dynamic Proxy是在程序运行过程中通过反射机制动态生成代理类的代码实现对目标类的代理访问。动态代理可以代理任意实现了接口的类不受接口的限制。 特点动态代理可以根据具体需求动态生成代理类避免了手动编写代理类的繁琐工作方便接口的扩展和修改。由于动态代理在程序运行时生成代理类的代码因此性能较静态代理略低。但是动态代理的灵活性 更高可以代理任意实现了接口的类。 2、使用场景 使用场景动态代理广泛应用于各种场景包括但不限于AOP面向切面编程、远程方法调用、RPC远程 过程调用等。通过动态代理我们可以实现对目标方法的拦截和增强将系统的横切关注点如日志记录、性能统计等与业务逻辑代码进行解耦提高代码的可维护性和可扩展性。 3、动态代理的简单实现 这里例子还以插入订单为例其他都不变只需将静态代理换为动态代理就可。 public class OrderServiceImplDynamicProxy implements InvocationHandler {private Object orderService;public OrderServiceImplDynamicProxy(Object service){this.orderService service;}public Object bind(){//创建动态代理对象return Proxy.newProxyInstance(orderService.getClass().getClassLoader(), orderService.getClass().getInterfaces(),this);}private void after() {System.out.println(动态代理对象...提交事务...);}private void before() {System.out.println(动态代理对象...开启事务...);}Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {before();Object o method.invoke(orderService, args);after();return o;} } 测试 public class Test {public static void main(String[] args) {OrderService service (OrderService)new OrderServiceImplDynamicProxy(new OrderServiceImpl()).bind();Order order new Order();order.setInfo(xxx手机);order.setUserId(2);service.insertOrder(order);} }/*打印结果 动态代理对象...开启事务... 业务层...调用持久层insertOrder方法... 持久层...插入订单...Order{infoxxx手机, userId2} 动态代理对象...提交事务... */ 总结 总结来说静态代理和动态代理各有优缺点适用于不同的场景。静态代理适用于接口稳定、功能较为简单的场景而动态代理则适用于需要灵活代理任意实现了接口的类的场景。
http://www.dnsts.com.cn/news/140216.html

相关文章:

  • 高平市规建设局网站网站建设项目总结报告
  • 网站建设技术课程设计摄影师常用的网站
  • 郑州鹏之信网站建设制作高端网站效果怎么样
  • asp建设网站需要了解什么网站规划与建设模板
  • 网站被恶意攻击广州做网站海珠新科
  • 太原搭建网站的公司网站建设app开发 微信小程序 网站开发 自动脚本
  • 手机网站竞价单页移动网站不备案吗
  • 网站个人和企业有什么区别酒店团购的网站建设
  • 域名怎么绑定网站推广普通话手抄报模板
  • 南昌公司网站建设公司连云港网站建设制作
  • 网站设计作品案例wordpress 添加媒体库
  • 网站前端工资岳阳网站建设一站式服务
  • 关于做展厅的网站德芙巧克力的软文500字
  • 重庆市建设工程交易中心网站做网站算法
  • 中国建设银行的官方网站wordpress 插件系统
  • 晋州市建设局网站怎么来维护已经上传的网站呢
  • 网站建设快速wordpress插件更新失败
  • 文山网站建设网页制作基础教程9787121095306教案
  • 有哪些可以在线做app的网站有哪些合肥建设工程信息网官网
  • 做网站销售好做吗网页版微信分身
  • 服装店网站建设规划书网站为什么百度不收录
  • 销售网站怎么做的wiki网站开发工具
  • 做公司网站500元网站建设整合营销
  • 网站推广与seo的区别哈尔滨网站建设口碑好
  • 信誉好的医疗网站建设wordpress生成ios app
  • 乐清门户网站建设爱心建站网
  • 网站的轮播图一般是做多大金融软件网站建设公司
  • 网站团队无锡工程建设招标网站
  • 北京专业建网站的公司怎么样做问卷网站
  • 重庆市城市建设综合开发办网站wordpress 签到 排行