ドメインレベルのオブジェクトから DTO に変換するオブジェクト変換クラスがあります。
私は効果的に次の構造を持っています
class RuleGroupDTO {
List<RuleDTO> ruleDTOs;
// other members
EvaluationRuleDTO
AssignmentRuleDTO
どちらもRuleDTOから拡張されています
変換用の私の API は次のとおりです。
public RuleGroupDTO convert(RuleGroup ruleGroup);
したがって、ドメインRuleGroup
を convert クラスに渡すと、 に関連付けられたコードが参照され、内にカプセル化されたまたはRuleGroup
が構築されます。EvaluationRuleDTO
AssignmentRuleDTOs
RuleGroupDTO
RuleGroupDTO を取得すると、 または のList<RuleDTO>
いずれかList<EvaluationRuleDTO>
が含まれていることがわかりますList<AssignmentRuleDTO>
。
ただし、正しいクラス バージョンを取得するには、 をループして、またはList<RuleDTO>
にキャストする必要があります。List<EvaluationRuleDTO>
List<AssignmentRuleDTO>
これは面倒に思えますが、このループ + キャストの実行を回避するために、いくつかの一般的な概念を利用できると考えています。
ここでジェネリックを利用するために API またはオブジェクト構造を変更するには、どのようなアプローチが考えられますか?