と という 2 つのサービス Bean がPowerUserManager
ありSimpleUserManager
ます。両方の@Service
アノテーション付きクラスには、コードの約 20% が共通しています。
2 つのクラス間の冗長性を減らすために、共通の抽象クラス ( ) を持つ継承ツリーを作成しました。BaseUserManager
BaseUserManager
|
---------------
| |
PowerUserManager SimpleUserManager
次に、私@Controller
または任意のクライアントクラスで、注釈を使用して両方を@Autowired
注入し、扱っているユーザーのインスタンスに応じてそれらのいずれかを使用します。PowerUserManager
SimpleUserManager
特にサービス層でコードを因数分解するために継承を使用するのは苦手です。Spring フェローの皆さん、これを行うためのより良い方法を見つけましたか?