作者 内容
 billik   设计模式的讨论
 

现在我在做一个关于通信方面的系统,其中有很多的数据的处理,就是数据的解包和打包之类的东西
其中包头的格式是相同的,而包的格式内容则会根据包头的内容不同而不同,开发的工具主要是C++,最好是用一种或者多种设计模式达到代码的重用,考虑下来可能回用到Abstract Factory和职责链等,用于动态的确定消息格式和打包解包等

大家有什么好的想法,提提意见

 02/06/15 14:32 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 sinohong  生搬硬套不是好办法的样子。呵呵。
 

factory应该就够了吧。

 02/06/15 16:59 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 billik  回复: 生搬硬套不是好办法的样子。呵呵。
 

是的,你说的很对
我只是有个初步的想法
问题是如何解决根据消息头的内容确定以后的部分格式和内容

 02/06/16 11:18 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 wind_lz  回复: 生搬硬套不是好办法的样子。呵呵。
 

Abstract Factory
模式的重点在于维护系列产品的一致性。
我觉得直接用Factory method更好一些!
根据消息头的方法参数,确定使用解析处理该消息的子类!
由子类的execute()来执行消息的具体解析和处理!

 02/06/17 11:17 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 billik  回复: 生搬硬套不是好办法的样子。呵呵。
 

是的,是根据消息头来确定解析,但是怎样确定消息子类呢
我不想用IF,最好能够动态的

 02/06/17 21:28 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 wind_lz   回复: 生搬硬套不是好办法的样子。呵呵。
 

因为你必须要判断方法类型!
所以判断语句是必不可少的!
因此需要一个消息处理器的创建工厂。
由该工厂负责消息头的判断,决定返回的一个类型为消息处理器的消息处理器子类的实例指针或引用,
根据多态来实现剩余消息部分的解析和处理。!
对创建工厂可以利用接口编程和多态来实现复用和动态修改!

 02/06/17 23:32 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 fourfire29  回复: 生搬硬套不是好办法的样子。呵呵。
 

定义一个抽象类,解析是它的抽象方法,每增加一种解析方式就创建一个子类实现该方法,用一个factory method去动态的创建对象,调用其解析方法.
至于消息头的分析对照动态方法,你可使用配置文件的方法,获取实际创建类的名称

 02/06/18 10:44 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 billik  回复: 生搬硬套不是好办法的样子。呵呵。
 

是的,可以用该方法,但是C++中有没有利用String类型创建对象的方法呢?
是不是用CRuntimeClas?

 02/06/19 22:11 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 fourfire29  回复: 生搬硬套不是好办法的样子。呵呵。
 

yes
构造该结构即可

 02/06/20 12:27 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首