请教一个关于组合模式的问题
个人觉得组合模式适合于行为的组合,而对于组合模式中的属性一直没有早点好的解决方法,我拿信令的编解码来举例:
所有的信令都是一些子结构组合而成的,而所有的子结构都是一种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){
}
....
}
假使一条信令由baseMsg1和baseMsg2组成,那么如何获取得到baseMsg1中的value1和baseMsg2中的value2?