适配器模式:将一类的接口转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作那些类可以一起工作。
• 你想使用一个已经存在的类,而它的接口不符合你的需求。
• 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
•(仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
类适配器:
package com.qinsoft.design; /** * 适配器模式:结构型 */ public class Adapter { public static void main(String[] args) { Target t= new AdapterDemo(); t.Request(); } } interface Target { void Request(); } class Adaptee { void SpecificRequst() { System.out.println("Adaptee's SpecificRequst"); } } class AdapterDemo extends Adaptee implements Target { @Override public void Request() { System.out.println("Adapter's Request"); super.SpecificRequst(); } }
对象适配器:
package com.qinsoft.design; /** * 适配器模式:结构型 */ public class Adapter { public static void main(String[] args) { Target t= new AdapterDemo(); t.Request(); } } interface Target { void Request(); } class Adaptee { void SpecificRequst() { System.out.println("Adaptee's SpecificRequst"); } } class AdapterDemo implements Target { private Adaptee adaptee; public AdapterDemo() { this.adaptee=new Adaptee(); } @Override public void Request() { System.out.println("Adapter's Request"); adaptee.SpecificRequst(); } }