适配器( Adapter),也叫包装器( Wrapper),将一个类的接口转换成客户希望的另外一个接口。常用于将“既有内容”转换成“需要结果”,是代码重用的利器之一。
看到如下解释:
看看类适配器模式的示例代码:
class Banner{
private String strings;
public Banner(String strings){
this.strings = strings;
}
public String getBannerWithParen(){
return "("+strings+")";
}
public String getBannerWithAster(){
return "*"+strings+"*";
}
}
class PrintBanner extends Banner implements Print{
public PrintBanner(String strings){
super(strings);
}
public void printWeak(){
System.out.println(getBannerWithParen());
}
public void printStrong(){
System.out.println(getBannerWithAster());
}
}
interface Print{
public abstract void printWeak();
public abstract void printStrong();
}
对象适配器模式示例代码:
class Banner{
private String strings;
public Banner(String strings){
this.strings = strings;
}
public String getBannerWithParen(){
return "("+strings+")";
}
public String getBannerWithAster(){
return "*"+strings+"*";
}
}
class PrintBanner extends Print{
private Banner banner;
public PrintBanner(String strings){
this.banner = new Banner(strings);
}
public void printWeak(){
System.out.println(banner.getBannerWithParen());
}
public void printStrong(){
System.out.println(banner.getBannerWithAster());
}
}
abstract class Print{
public abstract void printWeak();
public abstract void printStrong();
}
测试主函数:
public class TestAdapter {
public static void main(String[] args){
Print p = new PrintBanner("Hello");
p.printWeak();
p.printStrong();
}
}
还可以参考博客:
http://blog.csdn.net/lemon_tree12138/article/details/50326851现在感觉自己只是略知其中的精髓,以后在实际工作中遇到这个模式一定要回来看看!