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

    
tanmingbo
03-10-15 0 235

版主你好,我看了你所写的适配器模式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