アプリケーション内のエンティティ用のインターフェイスを作成するのは通常の/推奨ですか? getter/settersをインタフェースまたはビジネスメソッドのみで宣言する必要がある場合は、エンティティのインタフェースを作成する必要がありますか?
答えて
インターフェイスはビジネスロジック用です。モジュールの動作や機能を宣言しています。 POJOはデータを含むオブジェクトであり、ロジックを実行するものではありません。
インターフェイスを作成することができます:同じ機能を共有する(つまり、同じインターフェイスを公開する)複数のクラスが存在するのでしょうか?その場合、その中にそれらの(ビジネスロジック)メソッドを持つインターフェイスを作成することができます。
また、インターフェイスには状態を把握するための変数が含まれていないため、インターフェイスを実装するクラスの一部になります。同じインターフェースを持ついくつかのクラスは異なる方法でそれを実装するかもしれないので、インターフェースで変数(そしてgetterとsetter)を指定する必要はありません。
インターフェイスには、ゲッターとセッターが含まれてはいけません。インターフェイスは、クラスが実行できる機能のみを提供します(ゲッター/セッターが必要な場合 - 抽象クラスを使用します)。フィールドは通常、(必ずしもそうではないが)実装の一部分のみである。
あなたのクラスはデータのみが含まれているのであれば、一つはエンティティのためのインタフェースを使用すると、彼らはJPAを扱っていることからクライアントを分離するために使用することができることを主張する可能性がありインタフェースで必要
はありません。同じインターフェースを共有する永続エンティティーの隣に、いくつかの派生した非永続ビジネス・オブジェクトが必要な場合があります。そのような場合、私はこれが適切であると感じます。しかし、トランザクションを気にする必要がない場合にのみ、このような使用を制限する必要があります。
インターフェイス/実装パターンの「過剰使用」について議論しているこの優れた記事をご覧ください。通常、エンティティBeanは、パターンのようなものを、次のされていない、あなたはここで良い理由を見つける:
http://marekdec.wordpress.com/2011/12/06/explicit-interface-per-class-antipattern/
エンティティまたはPOJOはゲッターと性質を持っているので、私は、インターフェイスは任意の理にかなっていると、エンティティ/ POJOを考えていけないまあやsettersそしてデータ用に使用されます。インターフェイスとその実装(インターフェイスを実装するPOJO)を提供し、Implementationクラスへのインターフェイス参照を使用してそれをデータベースに永続化しているとします。大丈夫ですが、同じインターフェースを実装している別のpojoを提供するとどうなりますか?それは確かにpojoの意味を侵害し、どんなpojoが存続するのか混乱させます。
- 1. DDD - エンティティはエンティティを作成する必要がありますか?
- 2. 抽象クラス用のインタフェースを作成する必要がありますか?
- 3. RPC要求のための非同期および同期インタフェースを作成する必要があります
- 4. MOSS 2007 - カスタムワークフローを作成する必要がありますか?
- 5. サブクラスNSManagedObjectを作成する必要がありますか?
- 6. テストファイルにヘルパーメソッドを作成する必要がありますか?
- 7. DateRangeオブジェクトを作成する必要がありますか?
- 8. なぜデータベースラッパーを作成する必要がありますか?
- 9. スプリングステートマシン - 作成する必要がありますか?
- 10. エンティティ名はエンティティ参照の '&'の直後にある必要があります
- 11. Joomlaカスタムコンポーネントがメニューを作成する必要があります
- 12. リレーショナルデータベーステーブルの作成を支援する必要があります
- 13. Typo Toleranceのオートポピュレートドロップダウンを作成する必要があります
- 14. このアクセサーを作成する必要があります
- 15. UITextFieldのコントローラを作成する必要はありますか?
- 16. いつプロキシサービスを作成する必要がありますか?いつRest APIを作成する必要がありますか?
- 17. プレゼンテーションレイヤーのどこに新しいエンティティを作成する必要がありますか?
- 18. エンティティと値オブジェクトの名前空間を作成する必要がありますか?
- 19. Cosmos DB - インデックス作成を待つ必要がありますか?
- 20. Androidでメモリゲームを作成する必要があります
- 21. トリガーを作成する必要があります
- 22. Recyclerview内でヘッダーを作成する必要があります
- 23. は.pemファイルを作成する必要があります
- 24. osgiでWebアプリケーションを作成する必要があります
- 25. Lotus:リモートサーバーにファイルを作成する必要があります
- 26. バイナリツリー構造を作成する必要があります
- 27. バッチファイルジョブを作成する必要があります
- 28. XMLデータソースを作成する必要があります
- 29. ウェブリンクでAndroid APKを作成する必要があります
- 30. プレアクトアプリケーションで.babelrcを作成する必要があります
OO-Paradigmaは、データを置くべきであることを私たちに伝えています。これを分割することは、技術的な理由で有用かもしれませんが、OOに違反します。 – BetaRide
PlainOldJavaObjectで話すとき、ロジックのみのゲッタとセッタのないデータ(プロパティ)のみを含むオブジェクトについて説明します。あなたは機能を持つオブジェクト(おそらくデータを含んでいます)については正しくありません。それは分割してはいけません。 – shem
> OO-Paradigmaは、データと関数型を1つのクラスに入れる必要があることを示しています。 - ケーキはそれ自身を焼くのですか? 'cake.bake()'は意味がありますか? –