如果您正在考虑一个真正的通用设计,请考虑以下几点:
不同UpdateParser
的 s 注册到CSVUpdateSetBuilder
并通过委托机制进行选择(即依次给予它们中的每一个识别记录的机会,如果它返回 null,则UpdateParser
给予下一个机会)。
- Class
Updater
: 接受一个集合CustomerRecords
并对其应用一个UpdateSet
。
- 接口
UpdateTypeDoer
:从执行的角度来看,不同类型的操作。
- 类
InsertDoer
:实现UpdateTypeDoer
。检测InsertInstance
对象并将其应用于数据。
- 类
DeleteDoer
:实现UpdateTypeDoer
。检测DeleteInstance
对象并对数据应用删除请求。
- 类
ChangeDoer
:实现UpdateTypeDoer
。检测ChangeInstance
对象并将更新请求应用于数据。
不同UpdateTypeDoer
的s注册到the上Updater
并通过委托机制进行选择(即依次给予每一个识别记录的机会,如果返回null,则UpdateTypeDoer
给予下一个机会)。
优点:非常灵活,易于演变和修改(添加新数据源、更新类型等)。缺点:在设计和实施时间方面的巨大投资可能永远不会得到回报。您是否要添加更新类型?不同的数据源?文件格式?
我一直认为在设计和编程中有两件事可以无休止地做:抽象和间接。知道多少是太少,多少是太多是真正的艺术。