私には既存のクラスの階層があり、次のように言います。
Business
- Division
- ProjectTeam
- Employee
これらのクラスは、逆シリアル化によってインスタンス化されます。
ただし、ライブラリの特定のユーザーのEmployeeに追加のフィールドを公開する必要があります。つまり、次のように言います。
SpecialBusiness (extends Business)
- Division
- ProjectTeam
- SpecialEmployee (extends Employee)
- Degree
問題は、「Business」を拡張するクラスを作成することはできないということです。これは、「Employee」クラスに追加したいためです。
私が見ているように、私には2つの選択肢があります。
'Special'クラスで階層を複製します。つまり、各「特別」クラスには、元のクラスのコレクションと新しい「特別」クラスのコレクションがあります。
SpecialBusiness - Division AND SpecialDivision (extends Division) - ProjectTeam AND SpecialProjectTeam (extends ProjectTeam) - Employee AND SpecialEmployee (extends Employee) - Degree
どういうわけか、逆シリアル化の目的で、実行時に「Employee」を「SpecialEmployee」に再入力します。すべての「Employee」オブジェクトをSpecialBusinessから「SpecialEmployee」にコードベースでキャストできることを知ってください(おそらくヘルパーメソッドを使用してそれを明確にします)。
この問題に対処する方法について何かアイデアはありますか?