java - 在java中处理临时代码实现的最佳方法
问题描述
我有一个在生产中运行的应用程序,我想在不停机的情况下为我的应用程序进行数据库级别的架构更改(即需要将旧数据迁移到新应用程序,也请参阅此以获得更多信息)。
为了处理我的应用程序中的数据操作,我有一个如下所示的 java 类。
public class MongoDBDataLayerImpl implements <some_class> {
@Override
public void addElement(){
//code to do inserting elements
}
@Override
public void deleteElement(){
//code to perform deletion
}
@Override
public void updateElement(){
//code to perform update
}
@Override
public void readElement(){
//code to perform read
}
/* Note: I have a many more methods like this in my actual implementation,
I just added this code for the clarity and simplicity.
*/
}
因此,为了进行模式更改,我计划在上述实现中插入一个临时更改(应该很容易拔掉),以便它暂时支持两种模式模型。
为此,我考虑在数据库端有一个数据迁移状态,并在我的实现中使用它来检查我是否应该为该特定数据使用新模式模型或旧模型。
因此,我可能需要在上述方法中设置类似的 if 条件或 switch 语句来执行此操作,例如见下文。
@Override
public void addElement(){
If (migrationStatus == 'migrated'){
// use new schema
}
else if (migrationStatus == 'migrating'){
//wait for migration completed and recall this function
}
else:
// use old schema
}
所以我的问题是,有没有合适的方法(一种设计模式)来做这个实现,而不是像上面那样使用 If 条件?(所以这应该很容易恢复)
这方面的最佳做法是什么?
解决方案
推荐阅读
- python - 按钮在 XY 点不可点击,其他元素会收到点击。在页面刷新后的 selenium 中,添加了参数 headless
- linux - 分别将 file1 的 1,2,5 列与 file2 的 1,2,3 列匹配,输出应该与文件 2 中的行匹配。第二个文件是压缩文件 .gz
- java - 作为参数的角色列表
- php - 如何在functions.php中使用域获取表单数据和创建用户
- tensorflow - RuntimeError:必须在程序启动时配置集体操作
- javascript - 拉取数组对象值,然后推送到另一个数组
- node.js - 在云函数中重试http请求
- swift - 将 PDF 文件保存到 iCloud Drive 中用户定义的默认目录
- python - FuncAnimation 现在在 matplotlib 更新 (3.2.2 -> 3.3.4) 后在每一帧重新调整轴限制
- components - 当 ToastBar 消息被手动清除时,它们下面的组件也会被点击......有什么建议吗?