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

做1688网站需要懂英语吗网站推广工具有哪些

做1688网站需要懂英语吗,网站推广工具有哪些,一个人做商城网站,茌平做网站什么是代理模式 代理模式为另一个对象提供替身或者占位符,以便控制客户对对象的访问,管理访问的方式有很多种。例如远程代理、虚拟代理、保护代理等。 远程代理:管理客户和远程对象之间的交互。 虚拟代理:控制访问实例化开销大的对…

什么是代理模式

代理模式为另一个对象提供替身或者占位符,以便控制客户对对象的访问,管理访问的方式有很多种。例如远程代理、虚拟代理、保护代理等。
远程代理:管理客户和远程对象之间的交互。
虚拟代理:控制访问实例化开销大的对象。
保护代理:基于调用者,控制对对象方法的调用。

类图

在这里插入图片描述

代码

案例:防止对person类的访问中,访问了不该访问的方法
以保护代理为例,主要是基于java内置的动态代理,来控制对对象方法的调用,其类图如下:
在这里插入图片描述

Person接口

public interface Person {String getName();String getGender();String getInterests();int getGeekRating();void setName(String name);void setGender(String gender);void setInterests(String interests);void setGeekRating(int rating);
}

Person实现类

public class PersonImpl implements Person{String name;String gender;String interests;int rating;int ratingCount = 0;public PersonImpl(String name, String gender, String interests, int rating, int ratingCount) {this.name = name;this.gender = gender;this.interests = interests;this.rating = rating;this.ratingCount = ratingCount;}@Override
public String getName() {return name;
}@Override
public void setName(String name) {this.name = name;
}@Override
public int getGeekRating() {if (ratingCount == 0) {return 0;} else {return rating  / ratingCount;}
}@Override
public void setGeekRating(int rating) {this.rating += rating;ratingCount++;
}@Override
public void setGender(String gender) {this.gender = gender;
}@Override
public String getGender() {return gender;
}@Override
public String getInterests() {return interests;
}@Override
public void setInterests(String interests) {this.interests = interests;
}

NonOwnerInvocationHandler类

//InvocationHandler
public class NonOwnerInvocationHandler implements InvocationHandler {Person person;public NonOwnerInvocationHandler(Person person) {this.person = person;}@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {try {if (method.getName().startsWith("get")) {return method.invoke(person, args);} else if (method.getName().equals("setGeekRating")) {return method.invoke(person, args);} else if (method.getName().startsWith("set")) {throw new Throwable();}} catch (InvocationTargetException e) {e.printStackTrace();}return null;
}
}

OwnerInvocationHandler类

public class OwnerInvocationHandler implements InvocationHandler {Person person;public OwnerInvocationHandler(Person person) {this.person = person;}// 
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {try {if (method.getName().startsWith("get")) {return method.invoke(person, args);} else if (method.getName().equals("setGeekRating")) {throw new Throwable();} else if (method.getName().startsWith("set")) {return method.invoke(person, args);}} catch (InvocationTargetException e) {e.printStackTrace();}return null;
}
}

测试:

public class Test {public static void main(String[] args) {Person kang = new PersonImpl("kwb", "boy", "ball", 1, 3);Person owner = getProxy.getOwnerProxy(kang);System.out.println(owner.getName());}
}

区别

装饰器模式为对象加上行为,而代理则是控制访问。

http://www.ds6.com.cn/news/32558.html

相关文章:

  • 解决wordpress更改新域名后网站不能访问的问题口碑营销案例2021
  • 设计师接私活的网站跨境电商培训
  • 网站首页的动态视频怎么做的汉中网站seo
  • 做网站和商城有什么好处长春网站建设公司哪家好
  • 求做网站seo培训优化
  • 网站限时抢购怎么做整合营销策划方案模板
  • 互动案例的网站外贸网站制作公司
  • 成都诗和远方网站建设重庆seo培训
  • 网站做动态图片不显示企业网络营销案例
  • 营销型网站软件seo建站公司推荐
  • 网站开发者yotoon什么叫关键词
  • 网站添加站长统计代码自媒体有哪些平台
  • 镇江网站建设介绍服务关键词优化seo优化
  • wordpress 博客 地址怎么优化一个网站关键词
  • 手机网站制作步骤搜索引擎优化的基本方法
  • 保定网页设计网站建设推广优化
  • 静态网页设计报告搜索引擎优化教材答案
  • 购物网页设计论文建站网站关键词优化
  • 哪些网站可以加锚文本高清网站推广免费下载
  • 头像在线制作生成器seo点击工具
  • 中铁建设门户网员工登录搜索引擎优化是指
  • wordpress登录页面显示ip武汉网络推广seo
  • 网站建设需要哪些技术人员自助建站系统个人网站
  • 招聘去建设赌博类网站seo关键字排名优化
  • 南海网站建设多少钱域名注册免费
  • 做网站高亮seo评测论坛
  • 网站建设需求指引免费行情网站app大全
  • 商业中心 网站建设域名注册服务网站哪个好
  • 怎么做网站地图seo技巧分享
  • 做电商网站需要做什么准备网络竞价推广开户