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

wordpress的意思和读音seo中文含义是什么

wordpress的意思和读音,seo中文含义是什么,wordpress menu代码,php做网站自动生成前台吗代理模式#xff08;Proxy Pattern#xff09; 一 定义 为其他对象提供一种代理#xff0c;以控制对这个对象的访问。 代理对象在客户端和目标对象之间起到了中介作用#xff0c;起到保护或增强目标对象的作用。 属于结构型设计模式。 代理模式分为静态代理和动态代理。…代理模式Proxy Pattern 一 定义 为其他对象提供一种代理以控制对这个对象的访问。 代理对象在客户端和目标对象之间起到了中介作用起到保护或增强目标对象的作用。 属于结构型设计模式。 代理模式分为静态代理和动态代理。 静态代理是显式声明被代理对象即硬编码出来的代理结构 动态代理是动态配置和替换被代理对象即通过在jvm中生成一个代理类来实现代理。 代理模式标准示例 顶层会有 subject的接口RealSubject 和 Proxy 都实现了 Subject接口。 Proxy中拥有 RealSubject对象的引用在Proxy的构造方法中将RealSubject作为参数传入然后在Proxy 的同名方法中调用 RealSubject的方法。但是在调用 RealSubject的方法前后可以加入Proxy的自有逻辑。 上述类图中各个类的代码如下 subject 接口类ISubject public interface ISubject{void request(); }被代理的类RealSubject public class RealSubject implements ISubject{public void request(){System.out.println(real reqeust);} }代理类Proxy public class Proxy implements ISubject{private ISubject target;public Proxy(ISubject target){this.target target;}public void request(){before();//调用前逻辑target.request();after();//调用后逻辑} }客户端 ProxyClient public class ProxyClient{public static void main(String[] args){Proxy proxy new Proxy(new RealSubject());proxy.request();} }接下来我们通过一个实际场景来呈现出静态代理与动态代理的异同。 阿毛想租房他首先考虑的是房产中介因为房源集中在中介那里。 首先是静态代理的实现 租户接口为ITenant 中介类为HouseProxy 实际租户有两个人Amao 和 LaoSan 代码如下 public interface ITenant {void require(); }public class HouseProxy implements ITenant{private ITenant custom;public HouseProxy(ITenant custom){this.custom custom;}public void require() {before();custom.require();after();}private void before() {System.out.println(当前代理权限通过验证可以登录系统开始筛选房源。);}private void after() {System.out.println(按照上述要求找到的房源有xxx);System.out.println();} }public class Amao implements ITenant {public void require() {System.out.println(阿毛的要求一室一厅2楼朝南2000元以内);} }public class LaoSan implements ITenant{public void require() {System.out.println(老三的要求二室一厅3楼以上南北通透4000元以内);} }客户端调用代码 public class Client {public static void main(String[] args) {//中介为阿毛找房HouseProxy proxy new HouseProxy(new Amao());proxy.require();//中介为老三找房HouseProxy proxy1 new HouseProxy(new LaoSan());proxy1.require();} }执行结果为 当前代理权限通过验证可以登录系统开始筛选房源。 阿毛的要求一室一厅2楼朝南2000元以内 按照上述要求找到的房源有xxx当前代理权限通过验证可以登录系统开始筛选房源。 老三的要求二室一厅3楼以上南北通透4000元以内 按照上述要求找到的房源有xxx动态代理的实现 由于租户不是随时可以看房所以要和中介约好看房时间所以我们在ITenant 接口中增加了看房时间。 public interface ITenant {void require();void lookHouseTime(); }相应的Amao和LaoSan 都需要实现这个方法 public class Amao implements ITenant {public void require() {System.out.println(阿毛的要求一室一厅2楼朝南2000元以内);}public void lookHouseTime() {System.out.println(阿毛看房时间周末);} }public class LaoSan implements ITenant {public void require() {System.out.println(老三的要求二室一厅3楼以上南北通透4000元以内);}public void lookHouseTime() {System.out.println(老三看房时间周中);} }最后是采用JDK动态代理实现的HouseProxy public class JDKHouseProxy implements InvocationHandler {private ITenant custom;public ITenant getInstance(ITenant custom){this.custom custom;Class? clazz custom.getClass();return (ITenant) Proxy.newProxyInstance(clazz.getClassLoader(),clazz.getInterfaces(),this);}public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {if (!method.getName().equals(lookHouseTime)) {before();}Object result method.invoke(this.custom,args);if (!method.getName().equals(lookHouseTime)) {after();}return result;}private void before() {System.out.println(--------------------);System.out.println(中介当前代理权限通过验证可以登录系统开始筛选房源。);}private void after() {System.out.println(中介按照上述要求找到的房源有xxx);}}这里我们会发现使用动态代理后代理中介无需实现ITenant接口如果ITenant接口发生变化也不会对代理对象产生影响。 客户端调用类 public class Client {public static void main(String[] args) {//中介为阿毛找房JDKHouseProxy proxy new JDKHouseProxy();ITenant tenantAmao proxy.getInstance(new Amao());tenantAmao.require();tenantAmao.lookHouseTime();//中介为老三找房JDKHouseProxy proxy1 new JDKHouseProxy();ITenant laosan proxy1.getInstance(new LaoSan());laosan.require();laosan.lookHouseTime();} }执行结果 -------------------- 中介当前代理权限通过验证可以登录系统开始筛选房源。 阿毛的要求一室一厅2楼朝南2000元以内 中介按照上述要求找到的房源有xxx 阿毛看房时间周末 -------------------- 中介当前代理权限通过验证可以登录系统开始筛选房源。 老三的要求二室一厅3楼以上南北通透4000元以内 中介按照上述要求找到的房源有xxx 老三看房时间周中动态代理除了JDK的API之外还有cglib的方式。 二者区别在于JDK的动态代理需要目标对象有继承体系即实现接口而cglib则不需要被代理对象存在继承体系。 以下是cglib的示例 cglib的中介代理类CglibHouseProxy public class CglibHouseProxy implements MethodInterceptor {public Object getInstance(Class? clazz){Enhancer enhancer new Enhancer();enhancer.setSuperclass(clazz);enhancer.setCallback(this);return enhancer.create();}public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {if (!method.getName().equals(lookHouseTime)) {before();}Object result proxy.invokeSuper(obj,args);if (!method.getName().equals(lookHouseTime)) {after();}return result;}private void before() {System.out.println(--------------------);System.out.println(中介当前代理权限通过验证可以登录系统开始筛选房源。);}private void after() {System.out.println(中介按照上述要求找到的房源有xxx);} }客户端调用类 public class CglibClient {public static void main(String[] args) {CglibHouseProxy proxy new CglibHouseProxy();ITenant tenant (ITenant) proxy.getInstance(Amao.class);tenant.require();tenant.lookHouseTime();} }执行结果 -------------------- 中介当前代理权限通过验证可以登录系统开始筛选房源。 阿毛的要求一室一厅2楼朝南2000元以内 中介按照上述要求找到的房源有xxx 阿毛看房时间周末补充cglib pom.xml的引入 dependencygroupIdcglib/groupIdartifactIdcglib-nodep/artifactIdversion2.2/version/dependency以上就是本文全部内容。感谢您的阅读。
http://www.yingshimen.cn/news/95367/

相关文章:

  • 建立一个网站赚钱了东莞网站排名优化seo
  • 聊城哪里做网站网站平台搭建包括哪些
  • 网站跟域名备案数量小公司根本办不了icp许可证
  • 常德建设企业网站室内装修哪家好
  • 浙江创新网站建设销售wordpress slider教程
  • html5制作网站开发seo网站设计工具
  • wordpress建站图片效果企业做网站都需要准备哪些材料
  • 建设网站的目的和功能定位seo页面链接优化
  • 化肥网站模板网站搭建技术
  • 潼南集团网站建设游戏网站规划方案
  • 建设网站服务器自营方式的特点站点建设网站
  • 手机网站建设深圳python语言属于什么语言
  • 图片模板 网站源码外贸网站增加权重
  • 温州专业网站制作设计项目网格化管理方案
  • 美食网站是怎么做的深圳网站开发费用
  • 网站建设需要什么呢wordpress 主题 500
  • 中国建设银行官方网站诚聘英才频道物联网平台层的主要功能
  • 深圳设计网站的公司中国品牌策划公司排名
  • 学建站论坛line 设计网站
  • 青岛哪家公司做网站好百度销售
  • 定制网站哪家好html框架做网站
  • 网站换空间 sitewordpress留言板页面怎么制作
  • 建个企业网站有什么用百度做玻璃钢的网站
  • 珠宝销售网站源码站长统计app软件大全
  • 地方网站商城怎么做大丰城乡建设局网站
  • 做地方旅游网站目的意义英文网站建设 深圳
  • 专业的论坛网站建设秦皇岛网站定制哪家好
  • 特产网站建设策划书做个网站多钱
  • 天津网站设计 河西做关键词排名好的公司
  • 网站建设招标书技术介绍采购网站建设招标方案