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

关键词在线下载wordpress 优化变快

关键词在线下载,wordpress 优化变快,大型网站建设兴田德润简介,网站建设福建目录 场景 代码实现 ​编辑 解析 定义 代理模式调用示意图 代理模式的特点 本质 ​编辑何时选用 场景 我有一个订单类#xff0c;包含订单数、用户名和商品名#xff0c;有一个订单接口包含了对订单类的getter和setter 现在有一个需求#xff0c;a创建的订单只…目录 场景 代码实现 ​编辑 解析 定义 代理模式调用示意图 代理模式的特点  本质  ​编辑何时选用  场景 我有一个订单类包含订单数、用户名和商品名有一个订单接口包含了对订单类的getter和setter 现在有一个需求a创建的订单只能a修改其他人无权修改 代码实现 定义OrderApi接口 package day10代理模式;public interface OrderApi {public String getProductName();void setProductName(String productName,String user);public String getOrderUser();public void setOrderUser(String orderUser,String user);public int getOrderNum();void setOrderNum(int orderNum,String user); }Order类实现订单接口 package day10代理模式;public class Order implements OrderApi{private String productName;private int orderNum;private String orderUser;public Order(String productName, int orderNum, String orderUser) {this.productName productName;this.orderNum orderNum;this.orderUser orderUser;}Overridepublic String toString() {return Order{ productName productName \ , orderNum orderNum , orderUser orderUser \ };}public void setOrderUser(String orderUser) {this.orderUser orderUser;}public void setProductName(String productName) {this.productName productName;}Overridepublic int getOrderNum() {return orderNum;}Overridepublic void setOrderNum(int orderNum,String user) {this.orderNum orderNum;}Overridepublic String getProductName() {return productName;}Overridepublic void setProductName(String productName, String user) {this.productName productName;}Overridepublic String getOrderUser() {return this.orderUser;}Overridepublic void setOrderUser(String orderUser, String user) {this.orderUser orderUser;} }现在创建一个代理类 package day10代理模式.java中的代理类;import day10代理模式.Order; import day10代理模式.OrderApi;import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.Arrays;/*** 使用java中的动态代理*/ public class DynamicProxy implements InvocationHandler {/*** 被代理的对象*/private OrderApi order null;/*** 获取 绑定好代理和具体对象后的目标对象的 接口** param order 具体的订单对象相当于具体目标对象* return 绑定好代理和具体对象后的目标对象的接口*/public OrderApi getProxyInterface(Order order) {// 设置被代理的对象好方便invoke里面的操作this.order order;// 把真正的订单对象和动态代理关联起来OrderApi orderApi (OrderApi) Proxy.newProxyInstance(order.getClass().getClassLoader(), order.getClass().getInterfaces(), this);return orderApi;}/*** 实现invoke在这个方法里面具体判断当前是在调用什么方法需要如何处理* param proxy* param method* param args* return* throws Throwable*/Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {// System.out.println(用到的方法有什么method.getName());System.out.println(args有什么 Arrays.toString(args));if (method.getName().startsWith(set)) {System.out.println(进入setter方法了哟);// 如果不是创建人那就不能修改if (order.getOrderUser() ! null order.getOrderUser().equals(args[1])) {// 可以操作return method.invoke(order,args);}else { // args[1] 表示第二个才是用户System.out.println(对不起, args[1] ,您无权修改本订单中的数据);}}else if(method.getName().startsWith(to)){System.out.println(现在调用toString方法了哟);return method.invoke(order,args);}else {// 不是调用setter方法就继续执行return method.invoke(order,args);}return null;}}Client package day10代理模式;import day10代理模式.java中的代理类.DynamicProxy;public class Client {public static void main(String[] args) {// 1.张三先创建了一个订单Order order new Order(设计模式, 100, 张三);// 2.创建一个动态代理DynamicProxy dynamicProxy new DynamicProxy();// 3.将订单与动态代理关联起来OrderApi orderApi dynamicProxy.getProxyInterface(order);//4.以下就需要使用被代理过的接口来操作了//4.1 李四想要来修改那就会报错orderApi.setOrderNum(123,李四);System.out.println(李四修改后的记录 orderApi);//4.2 张三修改orderApi.setOrderNum(123,张三);System.out.println(张三修改后的记录 orderApi);} }解析 代理类首先是实现一个名为InvocationHandler的接口。需要持有被代理对象也就是OrderApi然后通过一个对外提供的方法将代理与被代理绑定起来。实现invoke方法这个方法就是为了判断订单接口中当前在使用的方法对正在使用的方法做什么处理 一行一行解析就是首先判断方法名字是不是set开头的如果是就看一下订单对象是否为空和这个方法传过来的值中的第1个下标对象是不是等于持有的对象如果是就可以操作如果不是就提示。 定义 代理模式调用示意图 代理模式的特点  本质  控制对象访问 何时选用
http://www.zqtcl.cn/news/378516/

相关文章:

  • 网站建设的内容网站怎么做视频的软件
  • 大型网站多少钱企业咨询管理是干嘛的
  • 陕西建设银行网站小企业网站建设公司
  • linux下网站开发计算机网络技术专业主要学什么
  • 长沙网站维护公司建个门户网站
  • 做采集网站难不做科技的网站
  • 中小微企业服务平台seo怎么提升关键词的排名
  • 优秀企业网站欣赏店名设计wordpress文章列表添加字段
  • 有哪些做软件的网站服务器安装WordPress没有权限访问
  • app开发和网站开发公司网站怎么做百度竞价
  • 医疗机构网站备案网站建设面试常见问题
  • 建设网银登录网站国内欣赏电商设计的网站
  • 自适应网站优点缺点网站上的在线答题是怎么做的
  • 查询单位信息的网站免费学编程的网站有哪些
  • 建设企业网站进去无法显示wordpress 在线课程
  • 博客型网站建设广州网站建设如何做
  • 网站导航栏全屏怎么做万年网站建设
  • flash源码网站百度关键词价格
  • 个人网站如何发布怎么做记步数的程序到网站
  • 石家庄网站制作公司排名前十可视化网站开发工具有哪些
  • 网站个人博客怎么做杭州网站改版公司电话
  • 烟台北京网站建设公司中国建筑信息资讯网
  • 硬盘做网站空间高端网站设计杭州
  • 南昌网站建设方案网站建设需求分析班级
  • 汉阳做网站关键词站长工具
  • 做海报图片的网站营销软件
  • 能先做网站再绑定域名吗石家庄公司建设网站
  • 设计网站的收费图是怎么做的公司网站简介怎么做
  • 医院网站案例结合七牛云做视频网站
  • wordpress数据库缓存插件aso优化吧