アーキテクチャを階層化している場合(Guides、DAO、Services、Controllers)のGuiceの設定方法は?Guiceの設定/バインドのベストプラクティス
これは最上位層(コントローラ)で設定する必要がありますか?または、各レイヤーで構成する必要がありますか?もしそうなら、どのように一緒にそれらを手掛かりにする?
テストはどうですか?それがどうあるべきか?おかげさまで
アーキテクチャを階層化している場合(Guides、DAO、Services、Controllers)のGuiceの設定方法は?Guiceの設定/バインドのベストプラクティス
これは最上位層(コントローラ)で設定する必要がありますか?または、各レイヤーで構成する必要がありますか?もしそうなら、どのように一緒にそれらを手掛かりにする?
テストはどうですか?それがどうあるべきか?おかげさまで
一般的なプラクティスによれば、 DAOは可能な限り軽く、DBに接続するために存在します。
サービス層は、DAOとクライアントとの間で送受信されるデータを処理するロジックを提供します。
非常に多くの場合、これらは同じモジュールにバンドルされますが、時には同じコードにバンドルされますが、依然として別個の論理エンティティとして表示されます。
対応するGuiceモジュールに必要なサービスをバインドしてコントローラに注入し、DAOをインジェクションからサービス実装レイヤに提供する方がよいでしょう。
テストアプローチによれば、サービスがDAOとクライアント間で送受信されるデータを操作するロジック以外の機能を実行しない場合、各DAOはサーバー側で個別にテストする必要があります。
私は個人的に機能別に設定します。なぜなら、同じ場所に機能全体を持たせる方が効率的だからです。パッケージは明示的であり、モジュールは設定が簡単です。これは "層"についての考えを止めることを必要とする。ブックパッケージがあります。たとえば、 'BookService'、' BookDao'、 'BookController'だけでなく、あなたのエンティティ' Book'をそこに置くことができます。すべてを束縛するためには、あなたの 'BookModule'もそのパッケージに入れます。あなたの質問に答えるために、フィーチャベースのレイアウトをリファクタリングして、各パッケージにModuleを配置します。 –