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

企业网站开发公司排名分析影响网站排名的因素

企业网站开发公司排名,分析影响网站排名的因素,瀑布流wordpress,网页设计期末作品代码意图 复用已经存在的接口,与所需接口不一致的类。即将一个类(通常是旧系统中的功能类),通过适配器转化成另一个接口的实现。(简单来说,就是复用旧系统的功能,去实现新的接口) 我们举…

意图

复用已经存在的接口,与所需接口不一致的类。即将一个类(通常是旧系统中的功能类),通过适配器转化成另一个接口的实现。(简单来说,就是复用旧系统的功能,去实现新的接口)

我们举一个框架中使用的例子:springMVC中的dispatchServlet中,执行流程是先获取请求对应的映射方法全类名,然后找到该方法对应的适配器,这就是适配器模式的使用,因为springMVC需要执行方法后,返回一个ModelAndView对象。但是我们直接反射执行方法,是返回不了这个对象的,这就需要适配器模式上场帮我们去适配返回一个ModelAndView了。

我们举个生活中的例子:

适配器模式将一个类的程序设计接口转换成另一个接口术这很像变压器把一种电压变换成另一种电压。例如,美国的生活用电电压是110 V,而中国的电压是220 V。如果要在中国使用美国电器,就必须有一个能把220 V电压转换成110 V电压的变压器,这个变压器就是一个Adapter。

从下面两个图片我们可以知道适配器模式的本意:我们可以这样理解,220V插座提供的功能是220v供电的功能,任何电器只需要供电就能正常运作。美国电器同样需要供电,但是供电的类型有点特殊,需要110v的供电,但是我们项目中只有220v的接口,那么就需要一个转换,这个转换器就是我们后来所说的适配器,即Adapter。

那么美国电器,就是新的功能规范,需要的功能类型和旧接口是一致的,只是不能直接使用旧接口,所以需要适配器去对旧接口进行转换操作

原本中国的电器使用

 

使用变压器后的美国电器使用

 

类图描述

类的适配器模式结构

通过继承来实现可用的类结构

可以看出,Adaptee类没有Request方法(其实不算没有,Adaptee中的不能直接适配Request的功能),而客户期待这个方法。为了使客户能够使用Adaptee类,需要提供一个中间环节,即Adapter类,Adapter类实现了Target接口,并继承自Adaptee,Adapter类的Request方法重新封装了Adaptee的SpecificRequest方法,实现了适配的目的。因为Adapter与Adaptee是继承的关系,所以这决定了这个适配器模式是类的。

 

适配器模式涉及以下角色:

(1)目标(Target)角色: 是客户所期待的接口。因为java不支持多继承,所以Target必须是接口,不可以是类。

(2)源(Adaptee): 需要适配的类,也就是旧系统中已经有的类。

(3)适配器(Adapter)角色: 把源接口转换成目标接口,这一角色必须是类。

 

 

 请注意:适配器模式的要点是,新的目标接口所需要的功能跟旧接口的一致,但是又有一些差别,因此需要适配器Adapter来进行转换处理,而不是添加新的接口等,切勿跟装饰模式搞混了。

对象的适配器结构

跟类的适配器结构区别在于,Adapter中保持了一个旧的对象的引用,而不是通过继承来实现

 

例子:

假设目前有一个日期的工具类对象PersonDate,返回的内容是当前的时间戳,而此时,用户希望得到(年-月-日),也就是年月日这样类型的,于是这个新的规范,抽象为一个接口UserDate

首先创建PersonDate类

public class PersonDate {//返回当前日期的时间戳public Long getNowDate(){Date date=new Date();return date.getTime();}
}

然后创建新接口UserDate

public interface UserDate {//返回当前日期的格式化内容  年-月-日String getNowDateString();
}

创建适配器AdapterDate,这里采用对象适配器的方式,在适配器中保留旧对象的引用

public class AdapterDate implements UserDate{//保持旧实例的引用private PersonDate personDate;public AdapterDate(PersonDate personDate) {this.personDate = personDate;}//具体的转换方法@Overridepublic String getNowDateString() {//获取时间戳Long nowDate = personDate.getNowDate();//转化成date对象Date date=new Date(nowDate);SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");String dateString = format.format(date);return dateString;}
}

客户端测试:

public class Client {public static void main(String[] args) {//客户端使用旧的接口PersonDate personDate=new PersonDate();System.out.println(personDate.getNowDate());//使用适配器对象UserDate userDate=new AdapterDate(personDate);System.out.println(userDate.getNowDateString());}
}

运行结果:

 

 

小结:

到这里,我们可以知道适配器模式的理念,就是复用旧系统中的功能类,去适配新的接口,而新的接口,恰好需要和旧系统中对象相同的功能(不完全相同,但是大体一致),这时候就需要适配器去将旧功能对象去转化成为新接口的实现

http://www.15wanjia.com/news/10710.html

相关文章:

  • 优质企业网站开发seo和sem
  • mail邮箱登录入口市场推广seo职位描述
  • 最专业网站建设开发免费下载b站视频软件
  • 新华社两学一做网站seo深度优化公司
  • 商城类网站怎么优化长尾词优化外包
  • 陶瓷 中企动力 网站建设今天热点新闻
  • 计算机专业做网站的开题报告域名注册多少钱
  • 网站怎么做二维码优化营商环境个人心得体会
  • 新疆网站建设网络推广服务淘宝指数在线查询
  • 响应式mvc企业网站源码电子商务网站建设教程
  • 长沙网站seo厂家下载百度
  • 要建网站湖北seo公司
  • 网站群管理平台英文外链平台
  • 我想做京东网站淘宝怎么做的百度快速排名工具
  • 大型交流论坛平台有哪些seo搜索优化怎么做
  • 电商平台活动策划方案东莞百度seo新网站快速排名
  • 网站 app开发 财务做帐网站制作步骤流程图
  • 开贴纸网站要怎么做的seo关键词排名
  • 优化是企业通过网站来做吗seo博客网站
  • 张家港网站制作哪家好攀枝花网站seo
  • 全网网站建设优化营销网站seo推广
  • 石家庄建设厅网站百度统计怎么使用
  • 绍兴网站建设百度手机助手免费下载
  • 亚马逊产品开发流程8个步骤seo搜索引擎优化是
  • 门户网站建设管理情况自查报告培训学校招生方案
  • 负责网站建设推广《新闻联播》今天
  • 计算机网站建设相关的书籍百度资源搜索平台官网
  • 域名备案需要网站搭建完成吗广西网络推广公司
  • 找外包公司做网站百度收藏夹使用方法
  • 徐州网站制作苏视软文写作是什么