私が取り組んできた Java プロジェクトは、いくつかの RDBMS と統合されています。コードの重複を減らす最も明白な方法は、次のような型階層を作成することです。
ThirdPartySoftware (superclass)
/|\
/ | \
TPS1 2 3
ただし、このアプローチでは、TPS1、TPS2、および TPS3 の実装が非常に似ています (完全ではありません)。スーパークラスが本質的に何かが異なる可能性があるすべての場所を認識せずに、すべての機能をスーパークラスにプルすることは困難です。
私たちが検討した 1 つの方法は、「機能 X をサポートする」、「機能 Y を実行できない」など、DB が共有する機能によって DB を表すことですが、その方法でコードがより保守しやすくなるかどうかは完全には明らかではありません。 :
- 癖の多くは、1 つの DB にのみ適用されます。
- これを価値のあるものにするのに十分な共有/比較可能な (基本的には抽象化可能な) 機能は考えられません。
おそらく設計パターンを使用して、サブクラス間のコードの重複を減らす方法について他に提案がある人はいますか?