首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在客户需求仍不明确的情况下选择设计模式

如何在客户需求仍不明确的情况下选择设计模式
EN

Stack Overflow用户
提问于 2017-05-22 14:45:10
回答 4查看 61关注 0票数 0

我有一个平面文件,其中包含我从服务提供商那里得到的person "Records“。每条记录实际上是一个记录列表。文件中的每一行都代表一个具有给定类型的记录。person记录始终包含类型'001‘和'099',表示person的开始记录和结束记录。根据“事件”将其他记录添加到人员条目中。因此,将基于给定的事件构建记录。

举例说明。

代码语言:javascript
复制
000 # Start of doc.
001 # Person begin.
...
n Records (n > 001 && n < 099)
...
099 # Person end.
001 # Person begin.
...
n Records (n > 001 && n < 099)
...
099 # Person end.
001 # Person begin.
...
n Records (n > 001 && n < 099)
...
099 # Person end.
999 # End of doc.

除了每一行上的记录类型外,固定位置中还包含其他数据。

实际开始记录示例

代码语言:javascript
复制
0010308952872          01000000000000 K1995-03-01

到目前为止,我的方法是为每种记录类型定义一个.XSD,并使用模式绑定类。我的问题是,对于基于事件类型的哪些类型的记录是相关的,仍然没有要求。我会拿起一部电话,打电话给负责人,但在公共部门工作会让计划变得很糟糕。

有没有人有任何建议,哪种软件模式最符合这种类型的问题陈述?任何分享经验的人都将非常感谢:}

EN

回答 4

Stack Overflow用户

发布于 2017-05-22 14:58:15

如果我理解正确的话,您有不同类型的记录,并且记录列表可能会随着时间的推移而增加/更改。我的第一个想法是编写接口代码-将细节抽象出来,这样应用程序的大部分内容就不会受到底层数据结构更改的影响。

我会尝试通过结合使用Strategy模式和Factory模式来实现这一点。可以创建一个可以根据记录类型返回不同ReadStrategy实现的ReadStrategyFactory。

这是我写的一篇关于策略和工厂模式的文章的link -它可能是相关的。

票数 0
EN

Stack Overflow用户

发布于 2017-05-23 07:15:11

如果这仅仅是抽象记录对象状态的问题。然后创建一个抽象复合类型来表示任何记录类型。这也可以用作在复合设计模式中使用的公共接口类型。它允许您遍历几乎任何类型的数据结构,并将不同类型作为公共组合进行处理。在复合设计模式中搜索GOF或其他。如果我没理解错的话。这里的https://sourcemaking.com/design_patterns/composite就是一个来源。对于原始链接,很抱歉。我上iPhone了。

附注:我想我应该澄清一下,这假设您在读取平面文件时填充了一些数据结构。

票数 0
EN

Stack Overflow用户

发布于 2017-05-23 07:44:08

我的建议是尝试使用工厂的策略模式。这个github link是我自己创建的一个简单示例。

来自项目:-

文件读取器解决方案能够读取不同类型的文件结构。阅读BookListApp项目中的FileReader_Task.docx以了解此解决方案的问题(用户故事)。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44106222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档