Chinaunix首页 | 论坛 | 博客
  • 博客访问: 64551
  • 博文数量: 34
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 360
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-20 10:39
文章分类
文章存档

2010年(3)

2009年(5)

2008年(26)

我的朋友
最近访客

分类: Java

2008-10-15 20:47:56

    对于适配器模式还有一种是对象适配器;就是说我们要使用的target是一个抽象类,由于我们只能继承一个类,所以我们决定将依赖adaptee,将adaptee的一个对象放到adapter里面。
    最主要的差别体现在:
   

/**
 * 这里最大的区别就是target类不是接口了,而是一个抽象类。
 * 和上面那个类适配器模式不同。所以在adapter类就只能继承target类
 * 而依赖于adaptee类。
 * @author Administrator
 *
 */

public abstract class target{
   public abstract void provideWeak();
   public abstract void provideStrong();
}

一个是在target由接口变成抽象类。另外一个就是adapter

 

/**
 * 就只有这里的区别了。磨合差别,因为target是一个抽象类,而不是一个接口,所以我们只好只
 * 继承target类,而依赖于adaptee类。
 * @author Administrator
 *
 */

public class adapter extends target{
    adaptee adaptee;
  
    public adapter(String string){
        adaptee=new adaptee(string);
    }
    @Override
    public void provideStrong() {
     adaptee.showWithAster();
    }

    @Override
    public void provideWeak() {
        adaptee.showWithParen();
    }

}

差别很容易就体现了。。。

对于适配器模式,有一种缺省适配器模式,缺省适配器模式主要是因为inerface的方法得全部实现,而我们使用的一些类,就不需要所有的方法全部实现,我们就是用一个抽象类来实施iterface里面所有的类。

  在JDK里面有,比如WindowAdapter类就是一个缺省的适配器模式。使用这个我们就不需要将Iterface的 windowListener的方法全部实现,而只要实现其中的一部分。

   缺省适配器模式,就是节省我们的写法。增加灵活性

(个人感觉:觉得抽象类和接口的结合是很不错的事情。)

阅读(607) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~