对于适配器模式还有一种是对象适配器;就是说我们要使用的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) |