设计模式-适配器模式
适配器模式定义
适配器模式,将一个类的的接口转换成客户或者产品希望的接口形式,就是原本不兼容或者甚至不相干的接口不能一起工作的接口一起工作,完成需求或者客户的需求。
适配器模式的使用场景
1、当你使用一个已经存在的类,而他的接口不符合你的需求。
2、你想要创建一个复用的类,该类可以与其相关的类或者不可见的类协同工作。
适配器角色
Target:目标接口
TargetImpl:目标实现类
Adapter:适配器
Adaptee:被适配者
代码解析:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
package
com.design.pattern.adapter;
/**
* 目标接口类
* Created by sdc on 2017/9/3.
*/
public
interface
Target {
/**
* 处理方法
*/
public
void
spider();
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
package
com.design.pattern.adapter;
/**
* Created by sdc on 2017/9/3.
*/
public
class
TargetImpl
implements
Target {
@Override
public
void
spider() {
//dosomething
System.out.println(
"dosomething"
);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package
com.design.pattern.adapter;
/**
* 适配者
* Created by sdc on 2017/9/3.
*/
public
class
Adaptee {
public
void
spiderFor() {
System.out.println(
"Adaptee 适配器方法"
);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package
com.design.pattern.adapter;
/**
* 被适配者3
* Created by sdc on 2017/9/3.
*/
public
class
Adapteer
implements
Target {
//适配者
private
Adaptee adaptee =
new
Adaptee();
@Override
public
void
spider() {
adaptee.spiderFor();
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package
com.design.pattern.adapter;
/**
* Created by sdc on 2017/9/3.
*/
public
class
Main {
public
static
void
main(String[] args) {
Target adapteer =
new
Adapteer();
adapteer.spider();
Target target1 =
new
TargetImpl();
target1.spider();
}
}
|
这样一个简单的设计模式完成了。有的时候项目里,有很多重复的代码,每天都会新建重复的代码,尝试着把代码抽取出来,或者可以用一些实际模式做出一些简单的设计,或许有不一样的效果。
本文转自 豆芽菜橙 51CTO博客,原文链接:http://blog.51cto.com/shangdc/1962321