我们之前在Java语言的学习中会用到设计模式中的适配器模式,但是在Android开发中具体什么地方需要应用适配器模式呢?在查阅了一些资料后整理出以下内容:
适配器模式(Adapter模式)
定义
将一个类的接口转换成客户希望的另外一个接口。
适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
使用场景
主要解决在软件系统中,常常要将一些”现存的对象”放到新的环境中,而新环境要求的接口是现对象不能满足的。
何时使用:
1、系统需要使用现有的类,而此类的接口不符合系统的需要。
2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,这些源类不一定有一致的接口。
3、通过接口转换,将一个类插入另一个类系中。
简单实例
要求机器人可以模拟各种动物行为,在机器人中定义了一系列方法,如机器人叫喊方法cry()、机器人移动方法move()等。如果希望在不修改已有代码的基础上使得机器人能够像狗一样汪汪叫,像狗一样快跑,或者像鸟一样叽叽叫,像鸟一样快快飞,使用适配器模式进行系统设计。现修改实例仿生机器人,使得机器人可以像鸟一样叫,并像狗一样的跑,请绘制类图并编程实现。
UML类图
实现方式
//Bird类
public class Bird
{
public void tweedle()
{
System.out.println("像鸟一样叫!");
}
public void fly()
{
System.out.println("像鸟一样飞!");
}
}
//BirdAdapter类
public class BirdAdapter extends Bird implements Robot
{
public void cry()
{
System.out.print("机器人模仿:");
super.tweedle();
}
public void move()
{
System.out.print("机器人模仿:");
super.fly();
}
}
//Dog类
public class Dog
{
public void wang()
{
System.out.println("像狗一样叫!");
}
public void run()
{
System.out.println("像狗一样跑!");
}
}
//DogAdapter类
public class DogAdapter extends Dog implements Robot
{
public void cry()
{
System.out.print("机器人模仿:");
super.wang();
}
public void move()
{
System.out.print("机器人模仿:");
super.run();
}
}
//DBAdapter类
public class DBAdapter implements Robot{
private