Java中具有不同参数数量的对象的依赖注入

时间:2014-09-14 16:38:42

标签: java constructor dependency-injection factory-pattern

我必须创建一个实现,其中我有一个超类A和两个类B和C都扩展了A,但是B和C都有具有不同参数数量的构造函数。 B有一个带有2个参数的构造函数,C有一个带有1个参数的构造函数。 有没有办法可以使用依赖注入动态创建对象。 现在我通过在C中创建一个虚拟构造函数来为第二个参数传递null。我不想使用这种方法。那么有没有更好的方法来解决这个问题。

现在我正在使用工厂模式来创建类,但希望能够将其移动到依赖注入。以下是我目前的代码

        public A getA(String type, String name, String extra)
            throws InvalidSubscriberTypeException {
        if (Types.B.toString().equalsIgnoreCase(type.toUpperCase())) {
            return new B(name);
        } else if (Types.C.toString().equalsIgnoreCase(
                type.toUpperCase())) {
            return new C(name,extra);
        } else {
            throw new InvalidSubscriberTypeException(
                    "Please select a valid subscriber - B or C");
        }
    }

然后我用以下方式调用它

TypeFacotry.getType("B", "Bill", null) 
TypeFacotry.getType("C", "Bill", "Deck") 

If someone can suggest a DI implementation for the same

0 个答案:

没有答案