新成员,新问题(适配器模式)

09-04-30 iky45
    

今天刚刚来到这个网站,初看一下,感觉非常棒。
我是java新手,最近在看设计模式相关知识,很多地方理解不深刻,望大家给我一下指导,其中看到“适配模式”,有下面的疑问:

1,首先引用本网站的参考教程如下:
假设我们要打桩,有两种类:方形桩 圆形桩.
public class SquarePeg{
  public void insert(String str){
    System.out.println("SquarePeg insert():"+str);
  }

}

public class RoundPeg{
  public void insertIntohole(String msg){
    System.out.println("RoundPeg insertIntoHole():"+msg);
}
}

现在有一个应用,需要既打方形桩,又打圆形桩.那么我们需要将这两个没有关系的类综合应用.假设RoundPeg我们没有源代码,或源代码我们不想修改,那么我们使用Adapter来实现这个应用:

public class PegAdapter extends SquarePeg{

  private RoundPeg roundPeg;

  public PegAdapter(RoundPeg peg)(this.roundPeg=peg;)

  public void insert(String str){super.insert(str); roundPeg.insertIntoHole(str);}

}

2,问题:
为什么这里非要用继承+组合的方式呢?我的想法是就一个组合就可以了吧?
public class PegAdapter {

  private RoundPeg roundPeg;
private SquarePeg squarePeg;

  public PegAdapter(RoundPeg roundPeg, SquarePeg squarePeg)
{
this.roundPeg=roundPeg;
this.squarePeg = squarePeg;

  public void insert(String str)
{
squarePeg.insert(str);
roundPeg.insertIntoHole(str);
}
}

请大家指出我这个设计的缺陷?

    

iky45
2009-05-03 01:05

怎么没人回复呢?
是问题太简单了吗?