Создал класс FistArena, который наследует класс Arena. Создать функцию getMode() в FistArena, которая просто возвращает строку с названием режима, т.е ‘fist’, либо же создавать свойство mode в классе Arena и туда вставлять название мода? Изменение этого свойства не предпринимается.
Озвучить как это звучит
Что непонятно?
ну по принципу инкапсуляции в таком случае обычно как раз делают приватное поле и публичный геттер для него. но если ты делаешь только для себя, то делай как нравится
можно просто абстрактный метод getMode у суперкласса, а в дочерних его реализовать
тебе нужно просто представление режима для вывода игрокам или для каких-то операций в самом коде?
Да, я так же и делать собираюсь
Хотя, я так подумал, можно и без этой функции обойтись, просто $arena instanceof FistArena, так же принято делать?
да, нормальная практика
когда функция на вход принимает интерфейс или абстрактный класс, а внутри проверка на конкретный тип
Смысл от инкапсуляции, если простая функция с ретурном менее требовательна к памяти, хех
в пхп нам не приходится думать о памяти, а объявление лишней переменной ни на что не повлияет
в любом случае про инкапсуляцию я здесь не к месту сказал, не сразу понял вопрос. естественно тут хватит абстрактного метода в суперклассе
но иногда встречал что делают приватное поле и публичный геттер для него. нет никакой разницы, это просто стиль кода
это и есть правильно
“единственное правильное” решение существует только у вас, майнкрафтеров, где вы все подряд клеймите “гкод”-ом
в реальности есть несколько паттернов и люди делают так, как нравится
Сог