Доброго времени суток. Странная реализация паттерна MVC. Почему моделью выступает ScriptableObject? ScriptableObject — статичный контейнер хранения данных. Например spawnpoints. Я бы еще понял если бы была вложенная структура Model внутри, которой лежит статичный Description = scriptableObject, который реализует лишь Get.
Пример простой: есть модель у нее есть дискрипшн. В моделе есть поле currentHp, который при инциализации модели заполняется из дескрипшена, в коротом MaxHp.
Иначе эта реализация может спокойно зачистить все поля scriptableObject`а.
+ почему controller выполняет роль view? Зачем он нужен если он напрямую влезает в данные view.
Паттерн MVC прост. Который диктует, что model и view не имеют доступа друг к другу. И лишь контроллер выступает прослойкой, которая связывает view и model.
Доброго времени суток. Странная реализация паттерна MVC. Почему моделью выступает ScriptableObject? ScriptableObject — статичный контейнер хранения данных. Например spawnpoints. Я бы еще понял если бы была вложенная структура Model внутри, которой лежит статичный Description = scriptableObject, который реализует лишь Get.
Пример простой: есть модель у нее есть дискрипшн. В моделе есть поле currentHp, который при инциализации модели заполняется из дескрипшена, в коротом MaxHp.
Иначе эта реализация может спокойно зачистить все поля scriptableObject`а.
+ почему controller выполняет роль view? Зачем он нужен если он напрямую влезает в данные view.
Паттерн MVC прост. Который диктует, что model и view не имеют доступа друг к другу. И лишь контроллер выступает прослойкой, которая связывает view и model.
if (nameMob == "ogre")
{
return new MobModel(descriptions.ListOgre[level]);
}
if (nameMob == "troll")
{
return new MobModel(descriptions.ListTroll[level]);
}
тоже самое на swich
switch (nameMob)
{
case "ogre":
return new MobModel(descriptions.ListOgre[level]);
case "troll":
return new MobModel(descriptions.ListTroll[level]);
}
Не стоит забывать, что pattern лишь нечто каноническое, они лишь помогают выполнять работу объектов наиболее удобным и оптимальным способом, но и способов этих много. Это просто порождение других классов через нужные условия, а метод может быть реализован хоть абстрактной стандартной фабрикой.
Намного проще — да. Но если тебе надо сохранять данные условно? Придется лезть в каждую View такую и сохранять параметры. Происходит перемешивание обязанностей + нельзя контролировать. Что если я хочу ее отключить? Кто будет управлять этим
Я бы не согласился. В данном Controller можно реализовать методы Enable и Disable, в которых можно привязывать и отвязывать события. Тем самым мы можем не уничтожать объект, а контролировать его. Нужен он нам сейчас или нет. Например реализовав pull manager для таких объектов, и отключаться в Disable у view Active тем самым скрывая, но не уничтожая
Доброго времени суток. Я прошу заметить, что в данной реализации все данные, что нужны Model — например возьмем машину. Много разных видов (например разные скорости). Простая реализация создаем CarModel и CarDiscription, который в свою очередь является [Serialize]. Тогда мы можем создать Scriptable object, в котором создадим List и уже в Inspector будем настраивать каждый дискрипшн, а Model будет хранить лишь нужный нам дескрипшн.
Пример простой: есть модель у нее есть дискрипшн. В моделе есть поле currentHp, который при инциализации модели заполняется из дескрипшена, в коротом MaxHp.
Иначе эта реализация может спокойно зачистить все поля scriptableObject`а.
+ почему controller выполняет роль view? Зачем он нужен если он напрямую влезает в данные view.
Паттерн MVC прост. Который диктует, что model и view не имеют доступа друг к другу. И лишь контроллер выступает прослойкой, которая связывает view и model.
Пример простой: есть модель у нее есть дискрипшн. В моделе есть поле currentHp, который при инциализации модели заполняется из дескрипшена, в коротом MaxHp.
Иначе эта реализация может спокойно зачистить все поля scriptableObject`а.
+ почему controller выполняет роль view? Зачем он нужен если он напрямую влезает в данные view.
Паттерн MVC прост. Который диктует, что model и view не имеют доступа друг к другу. И лишь контроллер выступает прослойкой, которая связывает view и model.
тоже самое на swich
Не стоит забывать, что pattern лишь нечто каноническое, они лишь помогают выполнять работу объектов наиболее удобным и оптимальным способом, но и способов этих много. Это просто порождение других классов через нужные условия, а метод может быть реализован хоть абстрактной стандартной фабрикой.
.