如果您正在考虑一个真正的通用设计,请考虑以下几点:
不同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给予下一个机会)。
优点:非常灵活,易于演变和修改(添加新数据源、更新类型等)。缺点:在设计和实施时间方面的巨大投资可能永远不会得到回报。您是否要添加更新类型?不同的数据源?文件格式?
我一直认为在设计和编程中有两件事可以无休止地做:抽象和间接。知道多少是太少,多少是太多是真正的艺术。