#c# #class #unity3d #controller #logic
#c# #класс #unity3d #контроллер #Логические
Вопрос:
Поэтому я программировал некоторый код инвентаризации для проекта unity.
У меня есть класс Slot, который содержит логику , которая происходит с этим слотом ( блокировка, заполнение содержимым, освобождение и т. Д.).
Однако я также обнаружил , что мне нужен класс SlotsController, который будет управлять тем, что происходит со слотом, когда я нажимаю на него, выбираю несколько слотов, складываю их и т.д.
Пример 1 : Слот вызовет метод OnClicked(Slot slot)
, найденный на контроллере, а затем контроллер вызовет метод Fill()
, найденный на слоте.
Пример 2 : У контроллера уже выбран слот , и когда я нажимаю на другой слот, я вызываю Stack()
метод на другом слоте и Free()
на выбранном слоте.
Теперь вопрос в следующем: является ли это правильным способом сделать это? Должен ли я иметь всю логику слотов, содержащуюся внутри этого класса, и вызывать только его методы из класса контроллера? Я чувствую, что класс SlotController-это что-то вроде класса менеджера, которым совершенно пренебрегают.
( Я надеюсь , что это достаточно ясно, английский не мой родной язык )
Комментарии:
1. Исследуйте ТВЕРДОЕ ТЕЛО..
2. просто сделайте свое решение. В программном обеспечении существует множество способов проектирования системы. Просто продолжайте то, что вы делаете, и вы увидите результат.
Ответ №1:
В вашем примере мне становится ясно, что назначение контроллера заключается не только в управлении одним и единственным слотом. Он используется для управления более чем одним слотом и управления взаимодействием/состоянием между ними.
Так что само по себе вам не нужен контроллер, когда у вас есть слоты, с которыми не нужно взаимодействовать. Концепция контроллеров является обычной практикой, многие разработчики внедряют их с самого начала, так как знают, что их программа будет расширяться и усложняться.
Еще одно хорошее использование контроллера-это когда вы предоставляете слот игроку(игрокам) в вашей игре. Контроллер может отслеживать, у кого есть слот или где находятся слоты, которые были выбраны в игре.
Комментарии:
1. Спасибо за ваш ответ. Итак, я полагаю, что наличие контроллера-это правильный путь? Я имею в виду, как еще я мог бы управлять несколькими слотами одновременно?
2. Да, если у вас есть несколько слотов и вы хотите управлять ими, контроллер-это правильный путь..