我经常有方法需要知道两个类的结构。例如,某些类可以写入ExcelDoc类。
将表写入Excel文档的方法需要知道两者的结构。两者都可以改变,甚至可能有多个实现Table1,Table2,Excel1,Excel2都提供了一些基本的接口。
现在我可以实现
ExcelDoc.write_data(table)
或
Table.write_to(excel)
或者我甚至可以制作中级课程
TableToExcel.write(excel, table)
或者我可以从类中派生出来......
如果我想为未来的进一步开发和功能寻求最佳设计,您认为最佳设计是什么?
答案 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