通用工厂定义选项

时间:2014-03-31 11:16:59

标签: java generics factory

定义通用工厂的经验法则是什么?实施和使用有何不同?

选项1:

public interface ScheduleFactory<V, T extends Period<V>> {
     Schedule<V,T> fromConfigurationString(String configurationString);
}

选项2:

public interface ScheduleFactory {
     <V, T extends Period<V>> Schedule<V,T> fromConfigurationString(String configurationString);
}

2 个答案:

答案 0 :(得分:1)

首先,您使用特定的ScheduleFactoryV创建T,然后该工厂对象只能返回Schedule<V, T>

在第二种方式中,您创建一个ScheduleFactory对象,然后该单个工厂对象可以为每个调用的不同Schedule<V, T>V创建T。 / p>

答案 1 :(得分:0)

主要区别在于类型推断

通用方法:它帮助java编译器查看泛型方法调用,以确定使调用适用的类型参数。

泛型类:类型的约束会影响整个类/接口以及您声明的每个方法。