私の Java アプリは小さく、単純なことをしていましたが、プレーンな SQL を使用することに非常に満足しており、Glassfish のようなアプリケーション サーバーによって接続管理が非常に簡単になりました。JPA と EJB について学んだ後、プロジェクトをリファクタリングしてこれらの優れた機能を使用することにしましたが、プログラミングよりも設計に関する問題に直面しました。
エンティティ Bean にビヘイビアを埋め込むのは良い方法ですか、それともデータのみを保持する必要がありますか?
私は多くのマニュアルやチュートリアルを読みましたが、優れた設計要件を満たすためにどのように使用すべきかではなく、どのように使用できるかについての回答がほとんどです。
たとえば、User
との 2 つのクラスLocation
がある場合、それらは両方ともエンティティ Beanです。Aは のuser
コレクションを格納できlocation
、JPA を使用して簡単に実装できます。しかし、これらのクラスに、別のユーザーまたは場所までの距離を計算するメソッド、パスの交差点を見つけるメソッド、user
1 日に走った距離を計算するメソッドなど、いくつかの機能を設定したい場合。そのような機能を Bean 自体に実装する場合、それは「良い設計」でしょうか?それとも、多くの静的メソッドを備えた特別なデコレータとヘルパー クラスを使用して目標を達成する必要がありますか?