Java 通用工厂方法惯例
让我说有一个抽象类Java 通用工厂方法惯例,java,generics,Java,Generics,让我说有一个抽象类 抽象类父类{ 受保护的静态newt实例( 最终类别类型、最终V值){ // ... } } 在下面的子类中 类子级扩展父级{ 公共静态子newInstance1(最终XXX值){ // ... } 公共静态父级newInstance2(最终XXX值){ // ... } } 哪一个更好newInstance1或newinstancecw2?这实际上取决于使用newInstance()的场景。在大多数情况下: 根据我的说法,因为Child正在实现newInstance()
抽象类父类{
受保护的静态newt实例(
最终类别类型、最终V值){
// ...
}
}
在下面的子类中
类子级扩展父级{
公共静态子newInstance1(最终XXX值){
// ...
}
公共静态父级newInstance2(最终XXX值){
// ...
}
}
哪一个更好
newInstance1
或newinstancecw2
?这实际上取决于使用newInstance()的场景。在大多数情况下:
根据我的说法,因为Child
正在实现newInstance()
protected static Child newInstance()
{
// ...
}
更合适。通常,在某些类中定义的factory方法会返回此特定类的实例,因此它应该是:
public class Foo ...
{
public static Foo newInstance ()
{
...
}
}
不管这个类扩展了什么类,实现了什么接口。E指的是什么?是某个具体的现有类还是泛型类型变量?亲爱的@EyalSchneider我更新了源代码。很抱歉