|
|
|
我看了Jdon中的《设计模式之Adapter(适配器)》 http://www.jdon.com/designpatterns/adapter.htm 这篇文章,我有一点没有看懂的地方, 文章中写到的这一小段:
现在有一个应用,需要既打方形桩,又打圆形桩.那么我们需要将这两个没有关系的类综合应用.假设RoundPeg我们没有源代码,或源代码我们不想修改,那么我们使用Adapter来实现这个应用: public class PegAdapter extends SquarePeg{ private RoundPeg roundPeg; public PegAdapter(RoundPeg peg)(this.roundPeg=peg;) public void insert(String str){ roundPeg.insertIntoHolestr);} }
在insert(String str)的方法中执行的是roundPeg.insertIntoHolestr); 这不是只打了圆形桩么?方形桩是在那里打的?
望各位明白人指点一下,先谢过大家了!
|
|
|
|
|
|
Re: 请教一个Adapter的问题
|
2003年11月19日 11:06
|
|
|
|
|
|
|
|
|
Re: 请教一个Adapter的问题
|
2003年11月19日 13:29
|
|
|
|
|
|
|
|
|
Re: 请教一个Adapter的问题
|
2003年11月19日 22:59
|
|
|
========================== 写错了 ==========================
-------------------------- Re: 请教一个Adapter的问题 发表时间: 2003年11月19日 13:29:00 回复 那里写错了? --------------------------
我来回答,应该是Pig不是Peg,对吧?:-)
这个例子,不看也罢,越看越糊涂,还是看GoF的原文吧,写的及其清楚,至少没有错误.
那个例子是:原来有RTF编辑能力的Control(Widget),怎样在文本编辑器当中复用,有两种方式,a.类继承,b.class member.比打猪的例子可清楚多了.
|
|
|
|
|
|
Re: 请教一个Adapter的问题
|
2003年11月19日 23:16
|
|
|
还有Adapter的关键点是在重用已经存在的功能性的部件,比如说RTF的编辑控件.
我在ADO.Net当中看到一个Adapter例子,是用来让客户端的离线数据集(XML或者是其他的)能够重用现存的SQL数据访问类(OleDB或者Native SQLServer的SQL访问类).
我学习的时候,看到Adapter才理解这几个类的相互关系和使用方式,看来,以后对Programmer的要求越来越高了.
|
|
|
|
|
|
Re: 请教一个Adapter的问题
|
2003年11月19日 23:25
|
|
|
|
总之,一句话provide programming interface of existing functional class to reuse in the new project without knowing internal implementation of the functional class.
|
|
|
|
|
|
Re: 请教一个Adapter的问题
|
2003年11月20日 15:51
|
|
|
liloboy,谢谢你的解答。 希望文章的作者检查一下自己的文章,如果真的错了那么就改了吧,
|
|
|
|
|
|
Re: 请教一个Adapter的问题
|
2003年11月20日 16:37
|
|
|
|
|
|
|
|
|
Re: 请教一个Adapter的问题
|
2003年11月20日 18:06
|
|
|
这段代码要看你从哪个角度看,如果从Adapter模式展现角度,是没有问题的。
已经在insert方法中实现了对打圆形桩的“变压”式调用,实际Adapter模式非常简单,就是一个对象组合应用,看例子时,千万别陷入具体应用功能进去。
|
|
|
|
|
|
Re: 请教一个Adapter的问题
|
2003年11月20日 22:26
|
|
|
我补充一下,还有一种Adapter的形式是继承,和Class Member的使用是有区别的.
=============================================================== 这段代码要看你从哪个角度看,如果从Adapter模式展现角度,是没有问题的。
已经在insert方法中实现了对打圆形桩的“变压”式调用,实际Adapter模式非常简单,就是一个对象组合应用,看例子时,千万别陷入具体应用功能进去。
|
|
|
|
|
|
Re: 请教一个Adapter的问题
|
2003年11月21日 09:32
|
|
|
谢谢大家。 To banq: 我明白你的意思了,谢谢。
|
|
|
|