У меня есть модель инвентаря и склада.Существует также модель User и OwnedItem.OwnedItem является полиморфным по отношению к инвентарю и складу, так что склад или инвентарь могут иметь принадлежащий объект для определенного пользователя.
Теперь склад и инвентарь имеют определенное сходство.Например, они обрабатывают слоты довольно похожим образом.Чтобы проиллюстрировать это, я создал функцию инвентаризации:
def empty_slots_count
self.max_slots - self.owned_items.inventory.count
end
Эта функция возвращает номер пустых слотов инвентаря.Эта функция будет почти одинаковой для склада (идентична ожидаемой для части .inventory).Итак, теперь мне интересно, применим ли модуль здесь.
Хотя модуль может быть в порядке, он не выглядит слишком естественным.Если бы я делал это в C ++, я бы определенно использовал наследование.Вероятно, у меня был бы другой класс, возможно, с именем что-то вроде SlotManager, который бы обрабатывал это, и мой класс Inventory наследовал бы это и использовал бы его.
Но Ruby не поддерживает множественное наследование (только mixins? Не знаю точномного об этом).Поэтому я хотел бы спросить, что было бы хорошим подходом?Конечно, я готов изучать новые вещи:)