类适配器:
package com.hycz.design.pattern.Adapter.ClassAdapter;
/**
* Created with IntelliJ IDEA.
* User: shangke
* Date: 6/14/13
* Time: 5:48 PM
* To change this template use File | Settings | File Templates.
*/
public class Adaptee {
public void specificRequest() {
System.out.println("被适配类具有 特殊功能...");
}
}
package com.hycz.design.pattern.Adapter.ClassAdapter;
/**
* Created with IntelliJ IDEA.
* User: shangke
* Date: 6/14/13
* Time: 5:51 PM
* To change this template use File | Settings | File Templates.
*/
public class Adapter extends Adaptee implements Target {
@Override
public void request() {
//To change body of implemented methods use File | Settings | File Templates.
this.specificRequest();
}
}
package com.hycz.design.pattern.Adapter.ClassAdapter;
/**
* Created with IntelliJ IDEA.
* User: shangke
* Date: 6/14/13
* Time: 5:49 PM
* To change this template use File | Settings | File Templates.
*/
public interface Target {
// 目标接口,或称为标准接口
public void request();
}
package com.hycz.design.pattern.Adapter.ClassAdapter;
/**
* Created with IntelliJ IDEA.
* User: shangke
* Date: 6/14/13
* Time: 5:50 PM
* To change this template use File | Settings | File Templates.
*/
public class ConcreteTarget implements Target {
@Override
public void request() {
//To change body of implemented methods use File | Settings | File Templates.
System.out.println("普通类 具有 普通功能...");
}
}
package com.hycz.design.pattern.Adapter.ClassAdapter;
/**
* Created with IntelliJ IDEA.
* User: shangke
* Date: 6/14/13
* Time: 5:52 PM
* To change this template use File | Settings | File Templates.
*/
public class Client {
public static void main(String[] args) {
// 使用普通功能类
Target concreteTarget = new ConcreteTarget();
concreteTarget.request();
// 使用特殊功能类,即适配类
Target adapter = new Adapter();
adapter.request();
}
}
对象适配器:
package com.hycz.design.pattern.Adapter.ObjectAdapter;
/**
* Created with IntelliJ IDEA.
* User: shangke
* Date: 6/14/13
* Time: 5:49 PM
* To change this template use File | Settings | File Templates.
*/
public interface Target {
// 目标接口,或称为标准接口
public void request();
}
package com.hycz.design.pattern.Adapter.ObjectAdapter;
/**
* Created with IntelliJ IDEA.
* User: shangke
* Date: 6/14/13
* Time: 5:50 PM
* To change this template use File | Settings | File Templates.
*/
public class ConcreteTarget implements Target {
@Override
public void request() {
//To change body of implemented methods use File | Settings | File Templates.
System.out.println("普通类 具有 普通功能...");
}
}
package com.hycz.design.pattern.Adapter.ObjectAdapter;
/**
* Created with IntelliJ IDEA.
* User: shangke
* Date: 6/14/13
* Time: 5:48 PM
* To change this template use File | Settings | File Templates.
*/
public class Adaptee {
public void specificRequest() {
System.out.println("被适配类具有 特殊功能...");
}
}
package com.hycz.design.pattern.Adapter.ObjectAdapter;
/**
* Created with IntelliJ IDEA.
* User: shangke
* Date: 6/14/13
* Time: 5:51 PM
* To change this template use File | Settings | File Templates.
*/
public class Adapter implements Target {
Adaptee adaptee;
public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void request() {
//To change body of implemented methods use File | Settings | File Templates.
adaptee.specificRequest();
}
}
package com.hycz.design.pattern.Adapter.ObjectAdapter;
/**
* Created with IntelliJ IDEA.
* User: shangke
* Date: 6/14/13
* Time: 5:52 PM
* To change this template use File | Settings | File Templates.
*/
public class Client {
public static void main(String[] args) {
// 使用普通功能类
Target concreteTarget = new ConcreteTarget();
concreteTarget.request();
// 使用特殊功能类,即适配类
Target adapter = new Adapter(new Adaptee());
adapter.request();
}
}