design-patterns - 哪种设计模式可以序列化对象 Builder 和 Visitor ?
问题描述
我正在尝试通过示例学习 OOPS。所以我尝试实现一个对象序列化器。对象是相同的,但它可以序列化为 XML、JSON 等。我看到了两种类型的建议。
在这个博客中,他们说我们可以使用访问者/双重调度来序列化对象。
但是,根据定义,我们是从复杂对象构建序列化对象,因此创建 XMLBuilder 和 JSONBuilder 是有意义的。
现在,这是正确的方法吗?
解决方案
学习设计模式的重点是为您的工具包提供解决方案的想法,而不是在解决测试问题时遵循教条。
在现实世界的场景中,很少有完美的选择。您必须权衡取舍并决定哪种方法最适合当前情况。
为什么不尝试这两种方法并评估您喜欢这些方法的哪些方面呢?
访问者模式的Wikipedia 条目很好地概述了您可能想要选择访问者模式的原因。“用例示例”特别适用于您的问题。
这种类型层次结构的基本操作是将图形保存为系统的本机文件格式。
类似地,可以应用Builder 模式 。但请注意,这种模式的重点是从多个来源创建复杂的输出。Builder 形式化了正在进行的工作的概念,允许您收集状态,直到可以生成输出对象。
我认为访问者模式更简单地满足您的需求。但是,选择权在你手中——这就是软件开发的美妙(和诅咒)!
推荐阅读
- javascript - 更改清晰度设计上的标题输入项的大小
- android - 在 Android Studio 中将 flutter_email_sender 2.0.0 库添加到 Flutter App 后构建问题
- mysql - 将外键添加到新创建的表(mySQL)时出错
- android - android 库中抛出的 kotlin 异常显示为警告而不是错误
- java - TextArea 不更新来自其他设备的数据
- css - 在另一列结束后水平展开布尔玛列
- c - 二维阵列 C 转 MIPS
- python - 计算每个 bin 中有多少值
- python - 如何从 python 代码中改进 parallel_bulk 以进行弹性插入?
- python - “重塑”对象不可迭代