假设我的项目使用3个不同的数据库MySql,Redis,Cassandra。我想概括我的设计,以便
它将在运行时根据输入类型返回相应的数据库客户端(类似于工厂设计模式)
在未来,我可以轻松添加或替换数据库而无需进行太多代码更改
这样的东西,假设在运行时如果我想读取/更新mysql db我的设计应该返回mysql db connection form连接池,现在我想为Redis做同样的事情,所以基于输入它应该从连接返回Redis连接池。
任何人都可以建议我设计项目时应遵循的最佳方法吗?
答案 0 :(得分:0)
对于这类事情没有灵丹妙药,但你在这方面的思考是不错的。您需要做的是将这些数据库与您的代码逻辑隔离开来,这样代码就无法确定存储数据的来源,也不知道数据来自哪个存储。
答案 1 :(得分:0)
的好候选人
在运行时根据输入类型返回相应的数据库客户端,并且可以轻松添加或替换DB而无需进行太多代码更改
是Strategy design pattern。它定义了一系列(在您的情况下为DB)算法,封装每个算法,并使它们在运行时可互换。策略允许算法独立于使用它的客户端。
答案 2 :(得分:0)