0

現在、次のように Factory クラスを使用して特定の機能を実装しています。

public class TemplateFactory {

    Template template = null;

    public static Template createTemplate(Message message){
        if(Message.getMessageId() == Message.WELCOME_MESSAGE) {
            template = new WelcomeTemplate(message);
        } else if (Message.getMessageId == Message.RESET_PASSWORD){
            template = new ResetPasswordTemplate(message);
        }
        return template;
    }
}

public class TemplateClient {
    public static void Main(String[] args){
        Message message = new Message(args[0]);
        Template template = TemplateFactory.createTemplate(message);
        template.doSomething();
    }
}

実行時にバインディングが動的に決定されることを考慮して、Google Guice でこれをどのように実装しますか?

4

2 に答える 2

0

ファクトリを作成するために、AssistedInjectと呼ばれるguice拡張機能を使用できます。

于 2012-10-28T10:16:12.530 に答える
0

MapBinder はあなたが探しているものです: http://google-guice.googlecode.com/svn/trunk/latest-javadoc/com/google/inject/multibindings/MapBinder.html

于 2012-10-29T09:49:21.783 に答える