У меня есть набор одноэлементных классов, и я хочу избежать стандартного кода.Вот что у меня сейчас:
public class Mammal {
protected Mammal() {}
}
public class Cat extends Mammal {
static protected Cat instance = null;
static public Cat getInstance() {
if (null == instance) {
instance = new Cat();
}
return instance;
}
private Cat() {
// something cat-specific
}
}
Это работает, и в этом нет ничего плохого, кроме того, что у меня есть много подклассов Mammal
, которые должны повторять метод getInstance()
.Я бы предпочел что-то подобное, если это возможно:
public class Mammal {
protected Mammal() {}
static protected Mammal instance = null;
static public Mammal getInstance() {
if (null == instance) {
instance = new Mammal();
}
return instance;
}
}
public class Cat extends Mammal {
private Cat() {
// something cat-specific
}
}
Как мне это сделать?