0

私と私のチームはjava EE学校のプロジェクトとしてアプリを作成しており、使用することにしましたhibernate。私たちはまた、プロジェクト全体をできる限り美しくクリーンなものにしたいと考えているため、推奨される規則に従うようにしています。hibernateそれにもかかわらず、ファイルの規則が何であるかを知ることができませんでした。IE フォルダ/cz/fit/cvut/nameofmyproject/があり、そこにパッケージがありますcontrollers, models, utils. controllersI've gotではSpring controllersmodelsエンティティのモデルが必要であり、utilsI've got SessionFactoryfor ではhibernate。そして今、私の質問:

modelパッケージ内のクラスにはどのように名前を付けるのですか? MyEntityNameDTOそれとも の意味を誤解したので、DTO名前を付けるべきMyEntityNameModelですか? DAOそして、私のクラスのフォルダの適切な名前は何ですか? 中規模のプロジェクト (最大 ~20 クラス/フォルダー) には、この単純な分割で十分でしょうか? それとも混乱しすぎますか? 実践からのヒントをありがとう:)

4

2 に答える 2

3

DTOはデータ転送オブジェクトの略です。DTO は通常、実際のクラスよりもデータ構造に近いクラスであり、多くの場合、ネットワークを介して、あるレイヤーから別のレイヤーに情報を転送するために作成されます。モデルエンティティではありません。

DTOがよく使われる

  • 実際のモデル オブジェクトをシリアル化することが実用的でない場合 (構造が適合しないため、受信者が Hibernate クラスにアクセスできないため、または遅延ロードされたエンティティに問題があるため)
  • モデル オブジェクトを介して集計または複雑なビューである情報を転送する場合 (たとえば、統計レポートのデータなど)

したがって、エンティティに DTO という名前を付けることはお勧めできません。DTO とエンティティは別物です。Model接尾辞も面倒です。エンティティは通常、エンティティが表すものにちなんで命名されます: CustomerCompanyPlayerOrderなど。

技術的な役割に基づいてクラスを分離することは、よく使用されるソリューションです。ただし、アプリケーションが大きくなると、スケーリングしない傾向があります。私は通常、機能面 (顧客管理、注文管理、セキュリティなど) に基づいて第 1 レベルの分離を行い、次に技術面 (サービス、DAO、モデルなど) に基づいて第 2 レベルに分離します。

于 2013-05-03T12:04:04.280 に答える