请问版主所说的Adapter模式的问题????

03-10-15 tanmingbo
    

版主你好,我看了你所写的适配器模式Adapter前部分,SquarePeg、RoundPeg、PegAdapter,我感到疑惑的是,如果我要在PegAdapter中实现既要打方型桩,又要打圆形桩的问题,怎么实现好呢?在PegAdapter中重写了insert类实现打圆形桩的问题,因此,如果要打方型桩的话,应该有这句:SquarePeg squ=new SquarePeg().但是如此一来的话,我就体会不出适配器的好处了。我感到还不如在应用中直接定义SquarePeg、RoundPeg的实例调用各自的方法,或者在PegAdapter中采用组合的方式将SquarePeg、RoundPeg包含近来,或者对PegAdapter类作如下改写:

public class PegAdapter extends SquarePeg {

private RoundPeg roundPeg;

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

public void insertIntoHole(String str) {

roundPeg.insertIntoHole(str);

}

}

即不重写SquarePeg中的insert方法。这样,在PegAdapter类中即可以调用

insert()方法打圆型桩,又可以调用insertIntoHole()方法打方型桩。

相关文档在本站“设计模式”中!

以上是我个人的理解,恳请各位同行指正!

我的QQ:15477736,MSN:tan_mingbo@hotmail.com