【发布时间】:2023-03-15 13:45:01
【问题描述】:
对于以下情况,您建议采用哪种设计模式:
需要一个类来表示一些由数字字符组成的文档的串行字符串。序列号有 4 种类型,字符串的第一个字符指定序列号的类型。每种类型的序列都有一些由竖线字符分隔的数字字段。序列类型的区别仅在于它们具有的字段数量(对于每种类型都是固定的)。每个字段的含义无关紧要,可以有任意值。序列字符串以管道字符结尾,后跟序列的所有前面数值的两位校验和。例如,以下字符串表示类型 2 的序列号:
20202|5666|00020|31
这里,第一个数字 2 指定该序列号是 2 型序列号。序列号字符串有 3 个字段,序列号的校验和是最后两位数字 31,它只是前面所有数字的总和。
在这种情况下,不使用任何特定模式很容易解决问题,但我想知道可以使用哪些著名模式或类似模式来解决此问题(例如,解析钞票的 MICR 数据) .
【问题讨论】:
-
关于:面料 + 策略。
-
结构模式和策略模式似乎都是好主意。使用结构模式创建串行对象并使用封装不同串行类型的校验和算法的策略是一个好主意。谢谢@W92。
标签: design-patterns string-parsing micr