处理两个类的方法的位置?

时间:2011-08-03 15:27:27

标签: oop design-patterns

我经常有方法需要知道两个类的结构。例如,某些类可以写入ExcelDoc类。

将表写入Excel文档的方法需要知道两者的结构。两者都可以改变,甚至可能有多个实现Table1,Table2,Excel1,Excel2都提供了一些基本的接口。

现在我可以实现

ExcelDoc.write_data(table)

Table.write_to(excel)

或者我甚至可以制作中级课程

TableToExcel.write(excel, table)

或者我可以从类中派生出来......

如果我想为未来的进一步开发和功能寻求最佳设计,您认为最佳设计是什么?

1 个答案:

答案 0 :(得分:1)

如果您可以表示要以某种中间形式编写的数据,那么您的两个类(即Excel和Table)都可以使用相同的表示形式。即Excel.write_data(data_in_intermediate_form)和Table.write_data(data_in_intermediate_form)。

或者Table和Excel具有用于读/写数据的已知接口,然后您可以在Table和Excel类中实现彼此的接口。要从Table获取数据到Excel,您可以执行ExcelObject.import(dataFromTable)。说得通 ? (实现类似目标有大量的导入示例,对吗?)

词shash