уважаемые гики DRY,
подскажите как можно оптимизовать данный кусок кода?
(менеджмент миграционных версий sql):
if (oldVersion == 1) {
await _upgradeToV2(db);
await _upgradeToV3(db);
await _upgradeToV4(db);
}
if (oldVersion == 2) {
await _upgradeToV3(db);
await _upgradeToV4(db);
}
if (oldVersion == 3) {
await _upgradeToV4(db);
}
Ужс, не смог смотреть. Нафига столько ветвлений?
void main() {
dynamic db;
upgrade(db, 3, 5);
}
void upgrade(dynamic db, int srcVersion, int dstVersion) {
print("Start upgrade DB from ${srcVersion} to ${dstVersion} version.");
Map.from({
2: _upgradeToV2,
3: _upgradeToV3,
4: _upgradeToV4,
5: _upgradeToV5,
}).forEach((key, callback) => {
if (key > srcVersion && key <= dstVersion) {callback(db)}
});
print("Uprage DB completed.");
}
void _upgradeToV2(dynamic db) {
print("Upgraded to ver 2");
}
void _upgradeToV3(dynamic db) {
print("Upgraded to ver 3");
}
....