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

发布于 2022-09-05 01:54:41 字数 284 浏览 15 评论 0

一种通过硬件设备的数据用了特殊格式,前一段是id,后一段是数据,

前面一段,代表它是一段类型为A, B, C等等哪一种类型的数据。

根据前面的类型,我们取后面中的某几位,如A类型我们需要数据取数据的1-3位,B类型则需要第20和第22位。

现在设计的时候只需要能接受a类和b类就行了,但是未来想要接受c类, d类等等,同时对数据进行的操作也不同,比如a类需要把1-3位都乘二,b类第二十位加1,第二十二位不变z

问题是应该怎么样设计,未来拓展的时候方便呢?比如我想支持d类,不用重写代码....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

信仰 2022-09-12 01:54:41

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

通知家属抬走 2022-09-12 01:54:41

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

云朵有点甜 2022-09-12 01:54:41

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

一影成城 2022-09-12 01:54:41

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

画中仙 2022-09-12 01:54:41

还需要判断一下后续的使用者,工厂模式,策略模式,代理模式可能都能满足你扩展的需求,其实重要的是想法,遵照六原则设计吧,没必要非要套某一个模式,根据需求,代码慢慢演变,最后可能自然的就符合某个模式了,也可能是多种模式的组合。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文