个人觉得组合模式适合于行为的组合,而对于组合模式中的属性一直没有早点好的解决方法,我拿信令的编解码来举例: 所有的信令都是一些子结构组合而成的,而所有的子结构都是一种TLV结构(type,length,value),当然,子结构也可是别的一种结构的组合。所有的信令都有encode和decode操作,用组合模式(用XML来定义某个信令由哪些结构组成)来解决很不错,但是,编码和解码后的属性值如何来获取和设置呢? interface Msg { public void encode(); public void decode(); } class baseMsg1 extends Msg{ int mgsType; int value1; }
class baseMsg2 extends Msg{ int mgsType; int value2; }
class CompositeMsg extends Msg{ int msgType; List list = new ArrayList(); public void addMsg(Msg msg){