易截截图软件、单文件、免安装、纯绿色、仅160KB

深入浅出Java设计模式之适配器模式


通常,客户类(clients of class)通过类的接口访问它提供的服务。有时,现有的类(existing class)可以提供客户类的功能需要,但是它所提供的接口不一定是客户类所期望的。这是由于现有的接口太详细或者缺乏详细或接口的名称与客户类所查找的不同等诸多不同原因导致的。
  在这种情况下,现有的接口需要转化(convert)为客户类期望的接口,这样保证了对现有类的重用。如果不进行这样的转化,客户类就不能利用现有类所提供的功能。适配器模式(Adapter Pattern)可以完成这样的转化。适配器模式建议定义一个包装类,包装有不兼容接口的对象。这个包装类指的就是适配器(Adapter),它包装的对象就是适配者(Adaptee)。适配器提供客户类需要的接口,适配器接口的实现是把客户类的请求转化为对适配者的相应接口的调用。换句话说:当客户类调用适配器的方法时,在适配器类的内部调用适配者类的方法,这个过程对客户类是透明的,客户类并不直接访问适配者类。因此,适配器可以使由于借口不兼容而不能交互的类可以一起工作(work together)。
  在上面讨论的接口:
  (1) 不是指在JAVA编程语言中接口的概念,虽然类的接口可以通过JAVA借扩来定义。
  (2) 不是指由窗体和GUI控件所组成的GUI应用程序的用户接口。
  (3) 而是指类所报漏的,被其他类调用的编程接口,
  类适配器(Class Adapter)VS对象适配器(Object Adapter)
  适配器总体上可以分为两类??类适配器(Class Adapter)VS对象适配器(Object Adapter)
  类适配器:
  类适配器是通过继承类适配者类(Adaptee Class)实现的,另外类适配器实现客户类所需要的接口。当客户对象调用适配器类方法的时候,适配器内部调用它所继承的适配者的方法。
  对象适配器:
  对象适配器包含一个适配器者的引用(reference),与类适配器相同,对象适配器也实现了客户类需要的接口。当客户对象调用对象适配器的方法的时候,对象适配器调它所包含的适配器者实例的适当方法。
  下表是类适配器(Class Adapter)和对象适配器(Object Adapter)的详细不同:
  补充:
  类适配器(Class Adapter) 对象适配器(Object Adapter)
  基于继承概念 利用对象合成
  只能应用在适配者是接口,不能利用它子类的接口,当类适配器建立时,它就静态地与适配者关联 可以应用在适配者是接口和它的所有子类,因为适配器是作为适配者的子类,所以适配器可能会重载适配者的一些行为。
  注意:在JAVA


相关文档:

访问远程Java对象 remoteObject

19.2 访问远程Java对象为了实现对远程Java对象的访问,在服务器端,需要完成如下几个步骤: 1. 创建LiveCycle Data Service Web应用; 2. 实现POJO Java类; 3. 在LiveCycle Data Service Web应用中部署POJO Java类; 4. 配置remote-config.xml文件,声明desination节点,指向POJO Java类。 在客户端应用中,需要实现: 1. ......

Java Annotation注释语法

Java Annotation注释语法(一)
关键字: java annotation注释
JAVA从J2SE5开始提供名为annotation(注释,标注)的功能。Java的annotation,可以附加在package, class, method, field等上面,相当于给它们添加了额外的辅助信息。附加在package, class, method, field等上的Annotation,如果没有外部解析工具等对其加以解 ......

Java UDP通讯程序升级版

最近一直在写C#的UDP通讯方面的程序,抽空把以前写的Java的UDP通讯程序拿出来做了一些升级的修改,把以前一些不足的地方做了改动,同时使用exe4j软件编译成exe文件,软件效果如下所示:
同时把代码贴出来,以供大家指点一二。
Main.java(主函数)
/*
 * To change this template, choose Tools | Templates
  ......

Java的main方法与类的加载的联系

鉴于许多同学对这个main方法的迷惑!我这里提供一些意见,希望对大家有帮助!呵呵!
     ****我们说加载先:
      Java的类是用到才开始加载的,并且在每个类的构造器调用之前,类的每个域(成员变量)都要首先被编译器初始化一次,然后才轮到构造器来干活儿。但是,Java ......

java程序~天数


//输入某年某月某天,输出这一天是这一年的第几天
public class DaySum {
 public static void main(String[] args)
 {
  date da=new date();
  System.out.println(da.count(2008,12,31));
 }
 
}
class date
{
 int count(int  year,int month,int day) ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号