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

做网站有流量就有收入吗简述网站建设流程

做网站有流量就有收入吗,简述网站建设流程,永康企业网站建设公司,杭州谷歌推广什么是代理模式 代理模式为另一个对象提供替身或者占位符,以便控制客户对对象的访问,管理访问的方式有很多种。例如远程代理、虚拟代理、保护代理等。 远程代理:管理客户和远程对象之间的交互。 虚拟代理:控制访问实例化开销大的对…

什么是代理模式

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

类图

在这里插入图片描述

代码

案例:防止对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.wangmingla.cn/news/50643.html

相关文章:

  • 新闻资讯app开发seo北京
  • 专业手机网站建设多少钱海外推广平台有哪些?
  • 做网站 对方传销网络项目资源网
  • 西安保障性住房建设投资中心网站长沙疫情最新情况
  • 旅游网站开发文档腾讯朋友圈广告投放价格
  • 重庆网站推免费二级域名注册网站
  • app网站下载免费seo企业优化方案
  • wordpress用户修改头像优化营商环境的措施建议
  • 成都小程序开发一个多少钱啊北京网站优化技术
  • 枝江市住房和城乡建设局网站网球排名即时最新排名
  • 高佣联盟做成网站怎么做洛阳网站建设优化
  • 建设厅网站密码找回ks免费刷粉网站推广
  • 自己怎么建设网站广州软件系统开发seo推广
  • 在韩国申请网站域名需要什么临汾网络推广
  • 网站收益外包优化网站
  • 网站定制设计价目表资源链接搜索引擎
  • 攀枝花城市建设网站免费职业技能培训网站
  • 怎么进网站源码的后台百度竞价推广技巧
  • 福田网站建设实训步骤一键优化清理加速
  • 有没有那个网站是做点心的百度seo
  • 做公司网站主要需要什么科目seo搜索引擎优化薪酬
  • 信阳网站设计网络营销大师排行榜
  • 怎么做自动发卡的网站网络营销的主要特点有哪些
  • 网站制作案例哪家强windows优化大师功能
  • 建立门户网站的步骤sem是什么意思啊
  • 芸志建站怎么建立网站抖音seo优化
  • wordpress quizzin网站seo的优化怎么做
  • 荼叶公司网站模板建站公司最新报价
  • 游戏网站建设杭州网上推广
  • 如何设计营销 网站建设网站流量统计分析报告