Доброе время суток. Я столкнулся с такой проблемой, что у меня есть родительский класс и его наследник. В родительском классе у меня стоит условие if(isPaused) return;
- т.е. если переменная isPaused = true, то метод должен прерываться. Но при этом в наследнике я вызываю super этого метода, и часть родительского метода не срабатывает, как и надо, а у наследника все продолжает работать. Может кто-то встречался с этой проблемой и знает как её решить?
Никакой проблемы в этом нет, если вы переопределяете метод, и в нем вызываете super(), то супер в этом месте и отрабатывает, но если у вас в переопределенном методе должно тоже что-то остановиться, то в нем так же делайте проверку if(isPaused) return;
в нужном для вас месте.
Используйте паттерн шаблонный метод.
public sclass Helper extends HeS{
public void act(float){
super.act(delta);
if(GameScreen.setPause) return;
templateMethod();
}
public void templateMethod(){
}
}
в наследниках переопределяете templateMethod().
Шаблонный метод может быть абстрактный, может иметь реализацию по умолчанию - по необходимости. Абстрактным вы его можете сделать только в абстрактном классе. Преимущество абстрактного метода в том, что нельзя унаследовать класс не переопределив этот метод - компилятор будет ругаться.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
На сайте используется несколько шрифтов, нужно установить один, к примеру Montserrat, кроме иконок (на сайте так же есть inline стили, которые имеют...
Может кто-то привести список частых паттернов проектирования в Open Source проектах ? Таких как symfony или laravel ?