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

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

怎么没人回复呢?

是问题太简单了吗?