JiveJdon Community Forums
在线510人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 2 回复 / 1
 发表新帖子   回复该主题贴
irix

悄悄话
发表文章: 8
注册时间: 2003年07月01日 08:35
请教一个关于组合模式的问题 2007年03月23日 10:50 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表 composite模式(20)      设计模式(165)     
个人觉得组合模式适合于行为的组合,而对于组合模式中的属性一直没有早点好的解决方法,我拿信令的编解码来举例:
所有的信令都是一些子结构组合而成的,而所有的子结构都是一种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?
banq

悄悄话
发表文章: 9481
注册时间: 2002年08月03日 17:08
re:请教一个关于组合模式的问题 2007年03月23日 14:23 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
>编码和解码后的属性值如何来获取和设置呢?
和encode和decode操作一样啊,进行一次统计查询,或者作为encode和decode操作结果返回。
irix

悄悄话
发表文章: 8
注册时间: 2003年07月01日 08:35
re:请教一个关于组合模式的问题 2007年03月23日 15:16 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
因为value1,value2都是各个子类的变量值,而不是所有的类其变量都是名字相同,如果都同一个变量名(含义相同)进行遍历是可以的。
通过encode和decode返回一个值还行,但对于多个就无法计算了,即使返回一个的话,这个返回的值怎么保存?
这个主题有 2 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  发贴前查询 标签列表勿重复发表问题

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com
anti spam