为什么使用适配器:
接口(方法比较多) – 实现类(仅仅使用一个,也得把其他的实现给提供了,哪怕是空实现)。这样做太麻烦了。
使用适配器的好处:
接口(方法比较多) – 适配器类(实现接口,仅仅空实现) – 实现类(用哪个重写哪个),简洁明了。
一、正常操作
1、用户接口
/*
* 四种功能
*/
public interface UserDao {
public abstract void add();
public abstract void delete();
public abstract void update();
public abstract void find();
}
2、直接实现接口
public class UserDaoImpl implements UserDao {
@Override
public void add() {
System.out.println("添加功能");
}
@Override
public void delete() {
System.out.println("删除功能");
}
@Override
public void update() {
System.out.println("修改功能");
}
@Override
public void find() {
System.out.println("查找功能");
}
}
3、调用实现方法
public class UserDaoDemo {
public static void main(String[] args) {
UserDao ud = new UserDaoImpl();
ud.add();
}
}
问题: 我没有说我们需要四种功能都实现啊。
注意:此处使用适配器模式解决
二、适配器模式下
1、定义接口:
/*
* 四种功能
*/
public interface UserDao {
public abstract void add();
public abstract void delete();
public abstract void update();
public abstract void find();
}
2、使用适配器(抽象类)空实现所有方法
public abstract class UserAdapter implements UserDao {
@Override
public void add() {
}
@Override
public void delete() {
}
@Override
public void update() {
}
@Override
public void find() {
}
}
3、 继承适配器即可,重写方法
public class UserDaoImpl2 extends UserAdapter {
@Override
public void add() {
System.out.println("添加功能");
}
}
4、 调用继承适配器重写的方法
public class UserDaoDemo {
public static void main(String[] args) {
UserDao ud2 = new UserDaoImpl2();
ud2.add();
}
}
此处为了方便演示,定义了4个接口方法;
当然如果单个方法、很少方法或者全部需要实现的就没必要使用适配器模式。
适配器是N个接口方法但是你又不想全部写出来使用比较适宜。
欢迎转载,注明出处,欢迎交流!!!