新成员,新问题(适配器模式)
今天刚刚来到这个网站,初看一下,感觉非常棒。
我是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);
}
}
请大家指出我这个设计的缺陷?