Это еще один шаблон дизайна в некотором устаревшем коде, который я не мог найти в Google. В этом случае дочерний класс расширяет абстрактный родитель, а затем поворачивает направо вокруг и объявляет статический экземпляр родителя:Когда и почему класс Child объявляет статический член экземпляра родительского класса?
public abstract class MessageBase {
protected DAOFactory factory;
// method declarations
}
public class EDWMessage extends MessageBase {
private static MessageBase instance;
public static MessageBase getInstance(Properties properties) {
if (instance == null) {
instance = new EDWMessageTransaction(properties, null);
}
return instance;
}
//more code
}
я не уверен, я понимаю, что будет вести этот шаблон проектирования (если это известный рисунок). Является ли это своего рода модель удобства, чтобы избежать объявления каждой переменной-члена родителя как статической? Или это означает, что для каждого из нескольких дочерних классов есть один экземпляр родителя. Но если это так, то почему чрезмерное использование наследования по простому составу?
Остальная часть кода не дает указания относительно того, почему это было бы сделано таким образом. Любые мысли или идеи будут высоко оценены. Благодаря!
P.S. Кажется, я работаю с большим количеством интересных designpatterns в этом устаревшем коде, который я не знаю, как обращаться. Спасибо всем, кто уже помог мне.
Редактировать: Расширение образца кода. Будет снова редактировать, поскольку я обнаруживаю место, которое фактически использует этот код. Yay без документации.
Как используется переменная экземпляра? – Ralph