Я работаю над приложением, и я написал большую часть SKScene
в одном классе. Он отлично работает, но когда я прошел курс (java) в прошлом семестре, кажется, что принятая отраслевая практика заключается в том, чтобы разделить его на многие классы.Где я должен выполнять свои функции?
Более конкретно, мой (SpriteKit) приложение содержит кошку и мышь, и после того, как финиширование курс, я решил, что вместо того, чтобы содержать всю свою информацию в SKScene
, я должен разделить некоторые из них на несколько классов (а Player
суперкласс с подклассами Cat
и Mouse
), каждая из которых содержит их соответствующую информацию (такую как положение x и y) и функции (такие как moveCat
) с только функциями и информацией, связанными с сюжетом, в классе Scene.
проблема заключается в содержании функций.
В частности одна из функций, pathBlocked
(который проверяет, есть ли какие-либо барьеры, блокирующие нужный путь движения) использует много информации, что не имеет смысла содержать внутри Player
объекта (например, всю информацию о барьеры на доске и сколько сыров было собрано).
Я не могу просто оставить pathBlocked
как Scene
функции, потому что есть функция, которая должна принадлежать к кошке (catAI
), который использует pathBlocked
для навигации. Если это метод сцены, это не сработает. Мне нужно было бы создать экземпляр объекта Scene каждый раз, когда я захочу позвонить pathBlocked
.
Должен ли я забыть о создании Cat
и Mouse
Занятия или я должен заполнить класс Player
информацией, которая не совсем принадлежит?
или есть третий вариант, о котором я не думаю?
Если вам нужен фрагмент кода, я мог бы включить его.
Спасибо!
'pathBlocked' мне показалось бы наиболее подходящим как метод сцены. – Alexander
забыл упомянуть, у кошки есть метод 'catAI', который вызывает' pathBlocked'. Если это метод сцены, это не сработает. Разве мне не нужно было бы создавать объект сцены каждый раз, когда я хотел бы называть 'pathBlocked'? –
Объект cat может содержать слабую ссылку на родительскую сцену и запрашивать его для такой информации – Alexander