为了账号安全,请及时绑定邮箱和手机立即绑定

这种情况怎么设计class? 有什么设计模式吗

这种情况怎么设计class? 有什么设计模式吗

30秒到达战场 2019-03-01 10:55:50
一种通过硬件设备的数据用了特殊格式,前一段是id,后一段是数据, 前面一段,代表它是一段类型为A, B, C等等哪一种类型的数据。 根据前面的类型,我们取后面中的某几位,如A类型我们需要数据取数据的1-3位,B类型则需要第20和第22位。 现在设计的时候只需要能接受a类和b类就行了,但是未来想要接受c类, d类等等,同时对数据进行的操作也不同,比如a类需要把1-3位都乘二,b类第二十位加1,第二十二位不变z 问题是应该怎么样设计,未来拓展的时候方便呢?比如我想支持d类,不用重写代码....
查看完整描述

5 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

根本用不到设计模式,传统的继承就可以,各个子类分别取不同的字段就可以。

查看完整回答
反对 回复 2019-03-01
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

如果一定要使用设计模式,可以考虑一哈策略模式

查看完整回答
反对 回复 2019-03-01
?
暮色呼如

TA贡献1853条经验 获得超9个赞

复杂的话用策略模式,不复杂的直接OO的继承,不同类型的消息交给不同的子类去处理。

查看完整回答
反对 回复 2019-03-01
?
慕森卡

TA贡献1806条经验 获得超8个赞

应该把数据协议格式规定好:例如:高3位代表类型,中间2位代表协议版本,后面代表数据。
协议规定好后,通过模板方法来处理,将具体解析放到子类,通用的放到父类。
这样在扩展时,不需要改动原有代码,只需要写新的实现就可以。

查看完整回答
反对 回复 2019-03-01
  • 5 回答
  • 0 关注
  • 511 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信