类和对象适配器:
    1. 想要使用一个已经存在的类,但是它却不符合现有的接口规范,导致无法直接访问,这时创建一个适配器就能间接去访问这个类中的方法
    2. 我们有一个类,想将其设计为可重用的类(可被多处访问)我们可以创建适配器来将这个类来适配其他没有提供合适接口的类
    接口适配器:
    1. 想要使用接口中的某个或某些方法,但是接口中有太多方法,我们要使用时必须实现接口并实现器中的所有方法,可以使用抽象类来实现接口,并不对方法进行实现(仅置空),然后我们再继承这个抽象类来通过重写想用的方法的方式来实现

    1. /**
    2. * Ps2插口
    3. */
    4. public interface Ps2 {
    5. void isPs2();
    6. }
    1. /**
    2. * Usb插口
    3. */
    4. public interface Usb {
    5. void isUsb();
    6. }
    1. //类适配器
    2. public class Adapter extends Usber implements Ps2 {
    3. @Override
    4. public void isPs2() {
    5. isUsb();
    6. }
    7. }
    1. //对象适配器
    2. public class Adapter implements Ps2 {
    3. private Usb usb;
    4. public Adapter(Usb usb) {
    5. this.usb = usb;
    6. }
    7. @Override
    8. public void isPs2() {
    9. usb.isUsb();
    10. }
    11. }
    1. public class Clienter {
    2. public static void main(String[] args) {
    3. Ps2 p = new Adapter();
    4. p.isPs2();
    5. }
    6. }
    1. /**
    2. * 接口
    3. */
    4. public interface A {
    5. void a();
    6. void b();
    7. void c();
    8. void d();
    9. void e();
    10. void f();
    11. }
    1. public abstract class Adapter implements A {
    2. @Override
    3. public void a() {}
    4. @Override
    5. public void b() {}
    6. @Override
    7. public void c() {}
    8. @Override
    9. public void d() {}
    10. @Override
    11. public void e() {}
    12. @Override
    13. public void f() {}
    14. }
    1. public class AInstance extends Adapter {
    2. @Override
    3. public void a() {
    4. System.out.println("实现A被调用");;
    5. }
    6. @Override
    7. public void b() {
    8. System.out.println("实现B被调用");;
    9. }
    10. }
    1. public class Clienter {
    2. public static void main(String[] args) {
    3. A a = new AInstance();
    4. a.a();
    5. a.b();
    6. }
    7. }