سؤال

وقد أي شخص على الاطلاق / محاولة لكتابة نمط خدمة تحديد المواقع الذي يستخدم نظام التكوين على غرار Guice؟

وحاليا لدي مشروع GWT (الذي يحدث لاستخدام GWT-RPC) يستخدم نمط القيادة حيث بلدي بريمج RPC أن يبدو مثل هذا ...

public interface TransactionService extends RemoteService {

    <T extends Response> T execute(Action<T> action);
}

في تنفيذ بلدي الحالي للطريقة تنفيذ أفعل هذا ...

if(action instanceof SomeActionImpl){
  doSomeActionImpl((SomeActionImpl)action);
}else if(action instanceof SomeActionImpl2){
  doSomeActionImpl2((SomeActionImpl2)action);
}

ما أود القيام به هو معرفة طريقة للتخلص من عملاق اذا البيان. وأود أن بحاجة إلى طريقة تسجيل تلك الفئة ActionImpl1 ينبغي أن تفوض إلى تنفيذ آخر من TransactioNService.

وأي أفكار؟ كنت أفكر في مجرد إضافة إدخالات إلى HashMap حيث المفتاح هو فئة العمل والقيمة هي فئة ServiceImpl ل. واحد لدي إشارة إلى فئة ServiceImpl أتمكن من استخدام Guice للحصول على مثيل TransactionService.

هل كانت مفيدة؟

المحلول

ونلقي نظرة على الطبقة net.customware.gwt.dispatch.server.DefaultActionHandlerRegistry في GWT-الإرسال (<لأ href = "http://code.google.com/p/gwt-dispatch/" يختلط = " نوفولو noreferrer "> http://code.google.com/p/gwt-dispatch/ )؛ يفعل بالضبط ما كنت يوحي. هنا هو متغير العضو الذي يقوم بتخزين معالجات:

وخاصة النهائية خريطة <الفئة <؟ يمتد العمل <>>، ActionHandler <؟ >> معالجات.؟

إذا كنت ترغب في تنفيذ معالجات على جانب الملقم، ثم استخدام مكونات من جانب الخادم GWT-إيفاد؛ إذا كانت أشياء من جانب العميل، ثم النظر في نماذج الطبقة إيفاد الخاصة بك على DefaultActionHandlerRegistry.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top