У меня есть что-то вроде этого:
public abstract class Menu {
public Menu() {
init();
}
protected abstract void init();
protected void addMenuItem(MenuItem menuItem) {
// some code...
}
}
public class ConcreteMenu extends Menu {
protected void init() {
addMenuItem(new MenuItem("ITEM1"));
addMenuItem(new MenuItem("ITEM2"));
// ....
}
}
//Somewhere in code
Menu menu1 = new ConcreteMenu();
Как вы можете видеть, метод superclass init является абстрактным и автоматически вызывается конструктором после создания объекта.
Мне любопытно, могу ли я столкнуться с некоторыми проблемами с таким кодом, когда мне нужно создать какой-то объект такого типа, структура которого не будет изменена во времени.
Будет ли какой-нибудь подход лучше? Он работает на Java, но будет ли он работать на С++ и возможно ActionScript?
Спасибо за ответ.