0

GWTPとMVP、GIN、Dispatchを把握しました。

ディスパッチには、アクションの実行内容を定義し、それに応じて何かを返すHandlerクラスがあります。

これまでのところ、同じメソッドを実行する必要がある2つのアクションがある場合があります。ActionHandlingは、ビジネスロジックが進む場所ではなく、その背後にあるレイヤーに入れて、何らかの形で何かを渡す必要があると私は信じています。

ロジックをどのようにレイアウトする必要がありますか?ところで、後でHibernateを使用したいと思います。

編集:

注として、実践で提供された回答を適用すると、実行する必要があるのは次のとおりです。

1.-AbstractModuleを拡張するモジュールクラスを作成します。これには次のものが含まれます

bind(Service.class).to(ServiceImpl.class);

2.- GuiceServletcontextListenerで、serviceModuleをgetInjectorメソッドに追加しますreturn:

return Guice.createInjector(new ServerModule(), new DispatchServletModule(), new ServiceModule());

3.-あなたのactionHandlersコンストラクターには次のようなものがあります

@Inject
  TestHandler(Service service) { this.service=service }
4

3 に答える 3

2

ビジネスロジックは、Handlerクラスから独立したビジネスオブジェクトに含まれている必要があります。テクノロジーにとらわれない方法でビジネスレイヤーを設計してみてください。ハンドラーはすべての重要な処理をビジネス・オブジェクトに委任するため、ハンドラー(ハンドラー)は実際にはかなり薄いはずです。

于 2011-09-27T08:21:51.317 に答える
1

サービスレイヤーをハンドラーに挿入してみてください。サービスはシングルトンとして作成できます。

@Inject
public MyHandler(MyService service) {
  this.service = service;
}
于 2011-09-27T14:30:36.147 に答える
0

MyServiceはインターフェースですか?はいの場合、Guice内でバインドするのを忘れました。

個人的には、DAOを使用して、ActionHandlerと永続性フレームワーク(Hybernate、Objectify、Twig-Persistなど)の間にロジックを配置します。

于 2011-09-28T05:23:46.010 に答える