0

我目前正在使用工厂类实现某些功能,如下所示:

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

MapBinder 是您正在寻找的:http: //google-guice.googlecode.com/svn/trunk/latest-javadoc/com/google/inject/multibindings/MapBinder.html

于 2012-10-29T09:49:21.783 回答
0

您可以使用名为AssistedInject的 guice 扩展来创建工厂。

于 2012-10-28T10:16:12.530 回答