对设计模式(Design Patterns)笔记之二:Adapter yakuu(原作) 的疑问和讨论

cxhz_cn 2002-10-28 10:45:37
我对该文的理解如下:

SquarePeg和RoundPeg已经被发布,并且不能对其进行修改

1.SquarePeg sPeg = new SquarePeg();
sPeg.insert();
这样只能打出方形桩

2.而增加了一个Adapter --PegAdapter extends SquarePeg后

RoundPeg rPeg = new RoundPeg();
SquarePeg sPeg = new PegAdapter(rPeg);
sPeg.insert();

这样就能打出园形桩

这样并不能达到又能打方形桩,又能打园形桩的目的呀~~

我很不明白,如果想打方形的就new SquarePeg(),打园形的就new RoundPeg()

为啥要通过一个adapter来实现,不明白到底啥时候用Adapeter();

能否具体举个清楚例子~~

我的Oicq:503071
...全文
45 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fastmask 2002-11-16
  • 打赏
  • 举报
回复
楼主理解错了,adapter是用来转换用户接口的,不是扩展的。
hellking 2002-11-14
  • 打赏
  • 举报
回复
adapter可以将一个类的接口转化成为客户希望的另外一个接口,adapter可以以使原本由于接口不兼容而不能一起工作的类可以一起工作!
cxhz_cn 2002-10-29
  • 打赏
  • 举报
回复
DanielYWoo(绿色毒汁) :

能不能给我具体说一下
cxhz_cn 2002-10-28
  • 打赏
  • 举报
回复
我觉得是否把PegAdapter改一下更容易理解

public class PegAdapter PegAdapter extends SquarePeg{
private RoundPeg lnkRoundPeg = new RoundPeg();
public void insert(String str){
if(lnkRoundPeg == null)
lnkRoundPeg = new RoundPeg();
}
return lnkRoundPeg.insertIntoHole();
}
DanielYWoo 2002-10-28
  • 打赏
  • 举报
回复
呵呵,你的意思就错了

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧