设计模式之-适配器模式
2017-09-03 15:10
169 查看
适配器模式:其实就是把一个实例类转换成另外的一个接口的类型的,适配器让原本接口不兼容的类可以合作无间。
适配器是使用组合和继承的方式,得到兼容的功能.耦合性还是比较高的.
请看例子:
/**狼的接口
* @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();
}
其实这个模式还是特别简单的,也没有什么好说的了.再见
适配器是使用组合和继承的方式,得到兼容的功能.耦合性还是比较高的.
请看例子:
/**狼的接口
* @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();
}
其实这个模式还是特别简单的,也没有什么好说的了.再见
相关文章推荐
- 设计模式--适配器模式Adapter
- 设计模式 - 适配器模式 Adapter
- java设计模式之适配器模式
- NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
- 设计模式学习笔记——适配器模式
- java 设计模式之适配器模式的详解
- 设计模式 - 适配器模式
- 201802151200->深入浅出设计模式:c#适配器模式
- 设计模式--适配器模式(简要)(四)
- GOF设计模式之适配器模式的理解
- 设计模式之适配器模式
- Java设计模式-适配器模式(Adapter)
- [Head First设计模式]身边的设计模式——适配器模式
- JAVA设计模式初探之适配器模式
- Java编程思想笔记02:组合与继承、final、策略设计模式与适配器模式、内部类、序列化控制(注意事项)
- 设计模式------适配器模式
- 设计模式(6)——适配器模式
- Java开发中的23种设计模式详解----适配器模式
- 点滴:Java设计模式 装饰模式与适配器模式的的区别
- 设计模式——适配器模式