浏览 2152 次
锁定老帖子 主题:“学习OO好榜样”之Adapter模式
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-22
我对Adapter模式的理解是:
某处有一些需求,可体现为Target接口(不妨假定Target有两个方法,m1、m2)。 我们在满足该需求的时候,即构造类来实现Target接口的时候,很容易想到的是看看是否存在已有资源可被利用(重用)。 比方说,此时我们发现Adaptee类实现了方法m1,如何重用? 两种重用方式分别对应于Adapter模式的两种形态: 1 继承的方式——类的Adapter模式 Adapter类从Adaptee类继承,于是自然拥有了方法m1。再自行实现方法m2,便完成了对Target接口的实现。 2 合成/聚合的方式——对象的Adapter模式 Adapter拥有一个Adaptee类型的属性,方法m1的实现委托给该属性实例的方法m1来做。再自行实现方法m2,也完成了对Target接口的实现。 哪种方式好呢?我强烈认为后者好些。满足合成/聚合复用原则。 事实上,后者确实更加灵活,比如Adaptee所拥有的方法m1名字叫做m3,但其实现的功能与Target要求的方法m1完全一样,或者只需稍微转换一下输出结果的格式。那么类的Adapter模式就不适用了,而对象的Adapter模式依然可以面带微笑。 总之,我认为Adapter模式是基于重用考虑的一种模式。 你要什么(接口),我就给你什么(实现类),我从哪里攒叨出来的方法实现,你就不用关心了(封装实现逻辑、实现方式)。你只需知道我是你所需接口的实现类。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |