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

做网站基本东西网店搜索引擎优化的方法

做网站基本东西,网店搜索引擎优化的方法,网站建设管理方案,常见的网络推广方式包括一、设计模式之代理设计 代理设计是在Java开发中使用较多的一种设计模式,所谓的代理设计模式就是指一个代理主体操作真实主体,真实主体操作具体业务,代理主体负责给具体业务添砖加瓦。 就好比在生活中你有一套房子想要出租(你真实主体)&…

一、设计模式之代理设计

代理设计是在Java开发中使用较多的一种设计模式,所谓的代理设计模式就是指一个代理主体操作真实主体,真实主体操作具体业务,代理主体负责给具体业务添砖加瓦。
就好比在生活中你有一套房子想要出租(你=真实主体),你找了房产中介(中介=代理主体)。真实主体负责提供房屋和收钱,代理主体负责带客户看房 、扣除手续费。租客只管租房子和付款,至于谁提供的房子并不关心。

我们发现,只需要定义一个租赁的接口,真实主体与代理主体都可以实现此接口,然后再由代理主体操作真实主体即可,上面的要求可以形成如下的代码:

1. 定义租赁接口

package com.javabasic.proxy;/*** 定义抽象接口*/
public interface House {/*** 定义抽象方法 租赁*/void rent();
}

2. 定义真实主体 - 房东

package com.javabasic.proxy;/*** 定义真实主体 房东*/
public class Owner implements House{@Overridepublic void rent() {System.out.println("房东提供房子,收取租金200元/月");}
}

3. 定义代理主体 - 中介

package com.javabasic.proxy;/*** 定义代理主体 中介*/
public class Agent implements House{// 接收真实主体 房东private House house;/*** 通过构造方法,让中介与房东之间产生联系。* 根据Java动态绑定机制,House运行时的真实类型是房东类型,就可以获取到房东的出租行为。* @param house*/public Agent(House house){this.house = house;}/*** 中介对房东出租业务进行增强*/@Overridepublic void rent() {rentBefore();house.rent(); // 房东 出租rentAfter();}private void rentBefore(){System.out.println("中介负责寻找租客、带看、保存租客信息、签合同、收取租金。");}private void rentAfter(){System.out.println("中介负责租客退租后的清扫工作。");}}

4. 主程序 中介出租房屋

在这里插入图片描述

二、动态代理

上面讲解的代理机制的操作,属于静态代理,因为每一个代理类只能为一个接口服务,这样程序开发中必然会产生过多的代理类。最好的做法是可以通过一个代理类完成全部的代理功能,那么此时就必须使用动态代理功能。

Java 中想要实现动态代理的机制,则需要java.lang.reflect.InvocationHandler接口java.lang.reflect.Proxy类的支持。

InvocationHandler接口的定义如下:

package java.lang.reflect;public interface InvocationHandler {public Object invoke(Object proxy, Method method, Object[] args)throws Throwable;
}

Proxy类是专门完成代理的操作类,可以通过此类为一个或多个接口动态地生成实现类。

	/*ClassLoader loader : 类加载器Class<?>[] interfaces : 得到真实类实现的全部接口InvocationHandler h : 得到InvocationHandler子类实例*/@CallerSensitivepublic static Object newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler h)throws IllegalArgumentException{...}

房屋租赁代码修改如下 :

1. 需要房东实现租赁的接口

public interface House {/*** 定义抽象方法 租赁*/void rent();
}public class Owner implements House{@Overridepublic void rent() {System.out.println("房东提供房子,收取租金200元/月");}
}

2. 创建代理类(InvocationHandler / Proxy)

package com.javabasic.proxy;import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;public class Agent2 implements InvocationHandler {// 接收真实主体private Object obj;// 对外提供绑定真实主体方法public Object bind(Object obj){this.obj = obj;// 通过真实对象创建代理对象并返回给调用者。/*Proxy.newProxyInstance : 三个参数类加载器 :  this.obj.getClass().getClassLoader()真实类型实现的所有接口 : this.obj.getClass().getInterfaces()代理类  : thisreturn 代理对象*/Object object = Proxy.newProxyInstance(this.obj.getClass().getClassLoader(),this.obj.getClass().getInterfaces(), this);System.out.println("bind之后object真实类型 = " + object.getClass().getName());return object;}/*** 代理类会执行的方法。* @param proxy 代理主体* @param method 调用的方法* @param args 方法的参数** @return* @throws Throwable*/@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println("proxy真实类型 = " + proxy.getClass().getName());rentBefore();method.invoke(this.obj, args); // 通过反射执行真实主体方法rentAfter();return null;}private void rentBefore(){System.out.println("中介负责寻找租客、带看、保存租客信息、签合同、收取租金。");}private void rentAfter(){System.out.println("中介负责租客退租后的清扫工作。");}
}

3. 主程序 出租

在这里插入图片描述

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

相关文章:

  • 沈阳建设公司网站渠道策略的四种方式
  • 厦门高端网站建设广州最新疫情最新消息
  • wordpress取消邮箱注册通州优化公司
  • 农村电商网站建设方案百度收录技巧
  • 广州招聘网百度蜘蛛池自动收录seo
  • 公司做网站的费用会计分录百度浏览器手机版
  • 交互网站开发东莞网络推广平台
  • 怎么给自己喜欢的人做网站郑州seo优化服务
  • 湛江网站建设技术托管河南企业网站建设
  • 百度权重9的网站免费推广网站大全集合
  • 网站设计建设 公司2022百度收录越来越难了
  • 做网站的疑问有哪些百度竞价排名展示方式
  • 公章电子版在线制作深圳seo优化电话
  • 做得好的网站北京百度快速排名
  • 美国做礼品的网站宁德市高中阶段招生信息平台
  • 贵阳网站制作贵阳网站建设哪家好优化大师免费下载安装
  • 建设局平台淄博网站优化
  • 母婴设计网站广州百度关键词推广
  • 合肥品牌型网站建设地址推广文案怎么写
  • 免费浏览器seo中文含义是什么
  • 用java后端做网站网络广告推广
  • 手机上的软件网站建设百度下载安装免费
  • 整站seo策略实施推广app拉人头赚钱
  • 沈阳网站设计广告公司电商运营主要做什么
  • 网站建设目的是什么一套完整的运营方案
  • 网站建设专票是几个税点2024最火的十大新闻有哪些
  • 专业商铺装修设计上海关键词优化报价
  • 网站信任的体验如何做nba排名赛程
  • 做特卖的网站有域名注册哪个网站好
  • 西宁啥时候恢复正常绍兴seo排名公司