當然,下面在Java中(沒有抽象靜態方法)不工作...Java中的抽象靜態工廠方法[getInstance()]?
public abstract class Animal {
public abstract static Animal getInstance(byte[] b);
}
public class Dog extends Animal {
@Override
public static Dog getInstance(byte[] b) {
// Woof.
return new Dog(...);
}
}
public class Cat extends Animal {
@Override
public static Cat getInstance(byte[] b) {
// Meow.
return new Cat(...);
}
}
什麼要求Animal
類有一個靜態getInstance
方法實例化本身的正確方法是什麼?這種方法應該是靜態的; 「正常」的抽象方法在這裏沒有意義。
相關:http://stackoverflow.com/questions/129267/why-no-static-methods-in-interfaces-但是,靜態字段和內部類的確定和http://stackoverflow.com/questions/708336/beginner-factory-pattern-in-java – finnw 2010-07-17 00:18:07