设计模式之-适配器模式

2018-05-28  本文已影响0人  子龙神

适配器模式:其实就是把一个实例类转换成另外的一个接口的类型的,适配器让原本接口不兼容的类可以合作无间。

适配器是使用组合和继承的方式,得到兼容的功能.耦合性还是比较高的.

请看例子:

/**狼的接口

* @author zhangke

*

*/

interface Wolf{

void say();

void run();

}

//狼的具体实现类

class WhiteWolf implements Wolf{

@Override

public void say() {

System.out.println("wowowo,这个狼在叫唤");

}

@Override

public void run() {

System.out.println("跳一次是60米");

}

}

/**人的接口

* @author zhangke

*

*/

interface Person{

void say();

void run();

}

//黄种人的具体

class YellowPerson implements Person{

@Override

public void say() {

System.out.println("黄种人,主要分布在亚洲的,我们就是黄种人");

}

@Override

public void run() {

System.out.println("跳一次是10米");

}

}

对已经存在的人和狼来说他们之间没有任何的关系,那么问题来了,狼人怎么办?他既是狼又是人,身兼两者的特点,但是首先,他是个人.

所以我们要做的就是把这个人看起来像狼就行了.

我们需要实现狼的接口

我们来制造一个狼人出来,看着像人,又有狼的特性

//一个狼人的具体实现类

class WolfPerson implements Wolf{

//需要得到一个狼人需要一个具体的人作为参数传递进来的.

private Person YellowPerson;

public WolfPerson(Person yellowPerson) {

super();

YellowPerson = yellowPerson;

}

@Override

public void say() {

//还是会说人话的

yellowPerson.say();

}

@Override

public void run() {

for (int i = 0; i < 5; i++) {

//狼人跳一次相当于人跳5次了

yellowPerson.run();

}

}

测试方法:

public static void main(String[] args) {

//白狼

WhiteWolf whiteWolf = new WhiteWolf();

whiteWolf.say();

whiteWolf.run();

System.out.println("~~~~~");

//黄种人

YellowPerson person = new YellowPerson();

person.say();

person.run();

System.out.println("~~~~~");

//狼人

WolfPerson wolfPerson = new WolfPerson(person);

wolfPerson.say();

wolfPerson.run();

}

其实这个模式还是特别简单的,也没有什么好说的了.再见

上一篇下一篇

猜你喜欢

热点阅读