我正在自学 Python OOP 并开发一个程序来在 DBMS 风格(MSSQL Server、DB2、Oracle 等)之间转换数据库 DDL。基本上,该程序将 DDL 文件、源 DBMS 类型和目标 DBMS 类型作为参数,并根据需要生成目标 DDL。为了实现要翻译的行为,我只能想到一组相当长且复杂的嵌套 if 语句,例如(仅限伪代码):
if sourceDBMS is 'a'
if targetDBMS is 'b'
translateAtoB()
if targetDBMS is 'c'
translateAtoC()
if sourceDBMS is 'b'
if targetDBMS is 'a'
translateBtoA()
if targetDBMS is 'c'
translateBtoC()
if sourceDBMS is 'c'
if targetDBMS is 'a'
translateCtoA()
if targetDBMS is 'b'
translateCtob()
任何人都可以根据源和目标的许多选项类型中的 2 种选择来提出一种可以简化此逻辑的模式吗?