易截截图软件、单文件、免安装、纯绿色、仅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实现文件分割\合并操作

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.sql.Timestamp;
import java.util.Arrays;
public class SmallToBig {
 private String newFileName;// 新文件名字
 private String filterName;// 过滤规则名字
  ......

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) ......

超简单程序99乘法表(java)

public class chengfa {
 public static void main(String[] args)
 {
  model md=new model();
  
  md.method();
  
  
 }
}
class model
{
 public int count=0;
 public int[]b=new int[100];
 
 public void me ......

Amazon发布新的Java SDK for Amazon Web Services

 
今年3月Amazon发布
了新的Java AWS
SDK
,旨在简化Amazon EC2上的Java应用开发。
Amazon EC2是个私有的Web Services,提供了云环境下的弹性计算能力。AWS SDK旨在简化网络规模(web-scale)下的计算。AWS Toolkit for
Eclipse
自动化了开发周期的大多数步骤,比如Amazon集群上的部署、调试、实例加载以及网 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号