适配器模式跟代理模式写法上类似。适配器模式做的就是,有一个接口需要实现,但是我们现成的对象都不满足,需要加一层适配器来进行适配。分为对象适配器模式、类适配器模式
对象适配器模式
1 | public interface Duck { |
1 | public class Cock { |
1 | public class ObjectAdapter implements Duck { |
无非是我们需要一只鸭,但是我们只有一只鸡,这个时候就需要定义一个适配器,由这个适配器来充当鸭,但是适配器里面的方法还是由鸡来实现的
类适配器模式
1 | public class ClassAdapter extends Cock implements Duck { |
通过继承 适配器自动获得了所需要的大部分方法来实现鸭的方法
与代理模式区别
目的不一样,代理模式做的是增强原方法的活;适配器做的是适配的活,为的是提供“把鸡包装成鸭,然后当做鸭来使用”,而鸡和鸭它们之间原本没有继承关系