本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7594039
建立时间:2006年5月29日




[设计模式]『蚂蚁学模式』之实例化适配器(Adapter)模式
软件技术

lhwork 发表于 2007/1/10 9:23:22

结构模式:描述如何将类或者对象组合在一起形成更大的结构。适配器模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。使用场合:1)系统需要使用现有的类,而此类的接口不符合系统的需要。2)想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。这些源类不一定有很复杂的接口。3)(对对象的适配器模式而言)在设计里,需要改变多个已有的子类的接口,如果使用类的适配器模式,就要针对每一个子类做一个适配器类,而这不太实际。类/对象的适配器模式:1. com.cleversoft.designpatterns.adapter.Target.java: 500)this.width=500'>package com.cleversoft.designpatterns.adapter;500)this.width=500'>500)this.width=500'>500)this.width=500'>public interface Target 500)this.width=500'>{500)this.width=500'>    public void request();500)this.width=500'>}2. com.cleversoft.designpatterns.adapter.Adaptee.java: 500)this.width=500'>package com.cleversoft.designpatterns.adapter;500)this.width=500'>500)this.width=500'>500)this.width=500'>public class Adaptee 500)this.width=500'>{500)this.width=500'>500)this.width=500'>    public void specificRequest() 500)this.width=500'>{500)this.width=500'>        System.out.println("Adaptee: SpecificRequest");500)this.width=500'>    }500)this.width=500'>}3. com.cleversoft.designpatterns.adapter.ClassAdapter.java: 500)this.width=500'>package com.cleversoft.designpatterns.adapter;500)this.width=500'>500)this.width=500'>500)this.width=500'>public class ClassAdapter extends Adaptee implements Target 500)this.width=500'>{500)this.width=500'>500)this.width=500'>    public void request() 500)this.width=500'>{500)this.width=500'>        specificRequest();500)this.width=500'>    }500)this.width=500'>}4. com.cleversoft.designpatterns.adapter.ObjectAdapter.java: 500)this.width=500'>package com.cleversoft.designpatterns.adapter;500)this.width=500'>500)this.width=500'>500)this.width=500'>public class ObjectAdapter implements Target 500)this.width=500'>{500)this.width=500'>    private Adaptee adaptee;500)this.width=500'>500)this.width=500'>500)this.width=500'>    public ObjectAdapter(Adaptee adaptee) 500)this.width=500'>{500)this.width=500'>        this.adaptee = adaptee;500)this.width=500'>    }500)this.width=500'>500)this.width=500'>500)this.width=500'>    public void request() 500)this.width=500'>{500)this.width=500'>        adaptee.specificRequest();500)this.width=500'>    }500)this.width=500'>}5. com.cleversoft.designpatterns.adapter.Client.java: 500)this.width=500'>package com.cleversoft.designpatterns.adapter;500)this.width=500'>500)this.width=500'>500)this.width=500'>public class Client 500)this.width=500'>{500)this.width=500'>500)this.width=500'>500)this.width=500'>    public static void main(String[] args) 500)this.width=500'>{500)this.width=500'>        System.out.println("Object Adapter");500)this.width=500'>        Adaptee adaptee = new Adaptee();500)this.width=500'>        ObjectAdapter objectAdapter = new ObjectAdapter(adaptee);500)this.width=500'>        objectAdapter.request();500)this.width=500'>500)this.width=500'>        System.out.println("Class Adapter");500)this.width=500'>        ClassAdapter classAdapter = new ClassAdapter();500)this.width=500'>        classAdapter.request();500)this.width=500'>    }500)this.width=500'>500)this.width=500'>}参考资料:1. 《Java与模式》2. Thinking in Patterns


阅读全文(2815) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.383 second(s), page refreshed 144753362 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号