设计模式-适配器模式

适配器模式跟代理模式写法上类似。适配器模式做的就是,有一个接口需要实现,但是我们现成的对象都不满足,需要加一层适配器来进行适配。分为对象适配器模式、类适配器模式

对象适配器模式

1
2
3
4
5
public interface Duck {

void quack(); // 鸭的呱呱叫
void fly(); // 飞
}
1
2
3
4
5
6
7
8
9
10
public class Cock {

public void gobble() {
System.out.println("咕咕叫");
}
public void fly() {
System.out.println("鸡也会飞哦");
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class ObjectAdapter implements Duck {

private Cock cock;

public ObjectAdapter(Cock cock) {
this.cock = cock;
}


@Override
public void quack() {
cock.gobble();
}

@Override
public void fly() {
cock.fly();
}
}

无非是我们需要一只鸭,但是我们只有一只鸡,这个时候就需要定义一个适配器,由这个适配器来充当鸭,但是适配器里面的方法还是由鸡来实现的

类适配器模式

1
2
3
4
5
6
7
public class ClassAdapter extends Cock implements Duck {

@Override
public void quack() {
gobble();
}
}

通过继承 适配器自动获得了所需要的大部分方法来实现鸭的方法

与代理模式区别

目的不一样,代理模式做的是增强原方法的活;适配器做的是适配的活,为的是提供“把鸡包装成鸭,然后当做鸭来使用”,而鸡和鸭它们之间原本没有继承关系

原文链接

Java 设计模式

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×