0

エンティティのビジネス ロジックは、エンティティ クラス内ではなく、別のクラス (サービス) に配置する必要があることを読みました。それは私には正しいように聞こえますが、問題はありませんが、エンティティの継承があるとどうなりますか?

つまり、Ride という抽象スーパークラスを持つ "Commute" と "SingleRide" という 2 つのエンティティがあります。これら 2 つのクラスはいくつかのロジックを共有しているため、そのためのサービスは問題ありませんが、同時にそれぞれに独自のロジックがあります。

たとえば、エンティティ クラスによって異なる「乗り物説明」を取得したい場合、「乗り物」の単一のサービスを使用してこれを処理するにはどうすればよいでしょうか。乗車サブクラスごとにサービスを作成する必要がありますか? (エンティティ構造の繰り返し)

この場合、ポリモーフィックな方法で「乗り物」を管理するにはどうすればよいですか?

4

1 に答える 1

0

抽象クラスに共有ロジックを追加します。つまり、RIDESに共通するもの。

すべての特定の実装は、他の誰もやらないことを子供たちに任せます。

サービスを使用して、さまざまな状況で使用できる特定のタイプに関連しないロジックを配置します。(例: テンプレート化、データベースアクセス、ログ記録、ファイルアクセスなどは Symfony サービスです。これらは汎用機能であり、別の場所に注入できますが、エンティティや特定の機能とは結合されません)

于 2012-11-13T17:45:19.477 に答える