UPD: Форум проглотил угловые скобки с T, заменил угловые скобки на {}
Справедливо было бы дать название треду "Unity3D, множественное наследование, реализация интерфейсов по умолчанию", но столько букв не позволяет ввести
Цель:
В моей игре на Unity3D есть инвентарь и предметы
В инвентаре предметы хранятся как экземпляры класса ItemДля моей игры нужно сделать предметы-хранилища, например батарейки, магазины для оружия, канистры для топлива и т.д
Что я придумал:
Я создал интерфейс ICell{T}, где T - это тип предмета, который хранится в хранилище (Энергия, пули, топливо и т.д)
т.к на данный момент в Unity3D нет поддержки C# 8.0, то реализация интерфейсов по умолчания мне не доступна - ОК, сделаю класс Celler{T}, который и реализовывать логику взятия/загрузки ресурса в ICell{T}
Т.е допустим мне нужно создать предмет-батарейку, что я делаю в моем случае:
Создаю класс Battery, который наследуется от класса Item.
Вешаю на класс Battery интерфейс ICell{Energy}. Используя композицию добавляю экземпляр класса Celler{Energy}.
Реализую повешенный интерфейс просто вызывая методы у экземпляра класса Celler{Energy}
Сабж:
Насколько плоха/хороша эта архитектура?
Если бы я мог использовать реализацию интерфейсов по умолчанию, и мог нормально через инспектор редактировать поля в интерфейсах, то архитектура бы улучшилась или наоборот?В чем отличие в предыдущем пункте множественного наследование от интерфейсов?
P.s: извиняюсь за сломанный цвет текста в некоторых местах, я не нашёл дефолтный цвет текста после того как поменял его