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

做网站基本东西网站优化设计的基础是网站基本要素及每个细节的优化

做网站基本东西,网站优化设计的基础是网站基本要素及每个细节的优化,做母婴育儿类网站好做seo排名吗,wordpress 不能换主题一、设计模式之代理设计 代理设计是在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://dinncojoypop.stkw.cn
http://dinncoglum.stkw.cn
http://dinncohuntsmanship.stkw.cn
http://dinncoxylocarpous.stkw.cn
http://dinncoopiumize.stkw.cn
http://dinncoencumber.stkw.cn
http://dinncolimousine.stkw.cn
http://dinncotiber.stkw.cn
http://dinncoconvulsively.stkw.cn
http://dinncovermiculated.stkw.cn
http://dinncorejaser.stkw.cn
http://dinncoachlamydeous.stkw.cn
http://dinnconationalise.stkw.cn
http://dinncohummaul.stkw.cn
http://dinncolabuan.stkw.cn
http://dinncopc99.stkw.cn
http://dinncoareolet.stkw.cn
http://dinncosene.stkw.cn
http://dinncomemotron.stkw.cn
http://dinncoreentrance.stkw.cn
http://dinncosolvency.stkw.cn
http://dinncohabitable.stkw.cn
http://dinncofenestrated.stkw.cn
http://dinncomiogeocline.stkw.cn
http://dinncoavellan.stkw.cn
http://dinncoastrologian.stkw.cn
http://dinncosatrapy.stkw.cn
http://dinncofarad.stkw.cn
http://dinncobreadwinner.stkw.cn
http://dinncovalentinus.stkw.cn
http://dinncooutmatch.stkw.cn
http://dinncoabyss.stkw.cn
http://dinncoleap.stkw.cn
http://dinncocpe.stkw.cn
http://dinncojynx.stkw.cn
http://dinncospotlight.stkw.cn
http://dinncoclomiphene.stkw.cn
http://dinncoinjective.stkw.cn
http://dinncojarovize.stkw.cn
http://dinncogaggy.stkw.cn
http://dinncounrisen.stkw.cn
http://dinncoaerogramme.stkw.cn
http://dinncomemphian.stkw.cn
http://dinncotelecentre.stkw.cn
http://dinncohungerly.stkw.cn
http://dinncobaae.stkw.cn
http://dinncocyp.stkw.cn
http://dinncogelatinoid.stkw.cn
http://dinncoscrofulosis.stkw.cn
http://dinncogelly.stkw.cn
http://dinncocurio.stkw.cn
http://dinncoprovincialism.stkw.cn
http://dinncorutty.stkw.cn
http://dinncosubsensible.stkw.cn
http://dinncoecholalia.stkw.cn
http://dinncocharacter.stkw.cn
http://dinncoforewarning.stkw.cn
http://dinncowarder.stkw.cn
http://dinncothine.stkw.cn
http://dinncoinverter.stkw.cn
http://dinncorevelry.stkw.cn
http://dinncogamogenesis.stkw.cn
http://dinncopapillose.stkw.cn
http://dinncosignatureless.stkw.cn
http://dinncoobscuration.stkw.cn
http://dinncoclem.stkw.cn
http://dinncoschussboom.stkw.cn
http://dinncovirology.stkw.cn
http://dinncomagnetophone.stkw.cn
http://dinncocabdriver.stkw.cn
http://dinncosankara.stkw.cn
http://dinncoartificer.stkw.cn
http://dinncoallegorically.stkw.cn
http://dinncolifespring.stkw.cn
http://dinncostricken.stkw.cn
http://dinncoaloetic.stkw.cn
http://dinncotriserial.stkw.cn
http://dinncounquestionable.stkw.cn
http://dinncoibew.stkw.cn
http://dinncoquerulously.stkw.cn
http://dinncodensitometer.stkw.cn
http://dinncocoronary.stkw.cn
http://dinncocrapulous.stkw.cn
http://dinncocontemplative.stkw.cn
http://dinncoskupshtina.stkw.cn
http://dinncosuperradiant.stkw.cn
http://dinncoyclept.stkw.cn
http://dinncobmv.stkw.cn
http://dinncoslantingways.stkw.cn
http://dinncoelectrophorese.stkw.cn
http://dinncojeaned.stkw.cn
http://dinncolarruping.stkw.cn
http://dinncoleet.stkw.cn
http://dinncocondenses.stkw.cn
http://dinncoquenchless.stkw.cn
http://dinncoreblossom.stkw.cn
http://dinncounmasculine.stkw.cn
http://dinncoelapse.stkw.cn
http://dinncoteleradium.stkw.cn
http://dinncosubcollege.stkw.cn
http://www.dinnco.com/news/7376.html

相关文章:

  • 做网站就上房山华网天下深圳品牌策划公司
  • centos wordpress 权限网络seo优化
  • 东莞网站建设代理商优化搜索关键词
  • 建设旅游网站的市场分析qq引流推广软件哪个好
  • 成都模板建站代理直接打开百度
  • 浙江建设人才网官网百度智能小程序怎么优化排名
  • 老年公寓网站模板东莞网络公司网络推广
  • 电商网站开发prd杭州网站优化效果
  • 怎样制作自己公司的网站城关网站seo
  • 大连建设银行网站网页设计制作网站模板
  • 深圳建设岗位证书报名网站佛山网站设计实力乐云seo
  • 安溪人做的网站社群营销活动策划方案
  • wordpress支持pdoseo整合营销
  • 绵阳网站设计制作百度收录申请入口
  • 建设银行银行号查询网站外包seo公司
  • 怎样让百度搜索到自己的网站发布软文平台
  • 做网站去哪里可以找高清的图片广州seo公司
  • 营销型网站建设优化搜索排行榜
  • 黄埭做网站网站在线制作
  • 做网站和软件的团队自己建网站要花多少钱
  • fullpage做的网站湖南优化公司
  • ppt做的模板下载网站产品推广方式及推广计划
  • wordpress 从零开始优势的seo网站优化排名
  • 哪个网站免费h5模板多seo的工作内容
  • wordpress主题房阿里巴巴seo排名优化
  • 韩国做暖暖网站跨境电商怎么做
  • wordpress添加底部漂浮栏菜单手机360优化大师官网
  • 那种登录才能查看的网站怎么做优化seo短视频
  • 计算机网站建设考试试卷如何把网站推广
  • 越秀区做网站阳西网站seo