事实
我有以下数据结构,由一个表和一个属性列表(简化)组成:
class Table {
List<Attribute> m_attributes;
}
abstract class Attribute {}
class LongAttribute extends Attribute {}
class StringAttribute extends Attribute {}
class DateAttribute extends Attribute {}
...
现在我想用这个数据结构做不同的动作:
- 以 XML 表示法打印
- 以文本形式打印
- 创建 SQL 插入语句
- 创建 SQL 更新语句
- 从 SQL 结果集中初始化它
第一次尝试
Attribute
我的第一次尝试是将所有这些功能放在Attribute
.
选择
感觉访问者模式可以很好地完成这项工作,但另一方面,对于这个简单的结构来说,它看起来有点矫枉过正。
问题
解决这个问题的最优雅的方法是什么?