Класс и логика контроллера

#c# #class #unity3d #controller #logic

#c# #класс #unity3d #контроллер #Логические

Вопрос:

Поэтому я программировал некоторый код инвентаризации для проекта unity.

У меня есть класс Slot, который содержит логику , которая происходит с этим слотом ( блокировка, заполнение содержимым, освобождение и т. Д.).

Однако я также обнаружил , что мне нужен класс SlotsController, который будет управлять тем, что происходит со слотом, когда я нажимаю на него, выбираю несколько слотов, складываю их и т.д.

Пример 1 : Слот вызовет метод OnClicked(Slot slot) , найденный на контроллере, а затем контроллер вызовет метод Fill() , найденный на слоте.

Пример 2 : У контроллера уже выбран слот , и когда я нажимаю на другой слот, я вызываю Stack() метод на другом слоте и Free() на выбранном слоте.

Теперь вопрос в следующем: является ли это правильным способом сделать это? Должен ли я иметь всю логику слотов, содержащуюся внутри этого класса, и вызывать только его методы из класса контроллера? Я чувствую, что класс SlotController-это что-то вроде класса менеджера, которым совершенно пренебрегают.

( Я надеюсь , что это достаточно ясно, английский не мой родной язык )

Комментарии:

1. Исследуйте ТВЕРДОЕ ТЕЛО..

2. просто сделайте свое решение. В программном обеспечении существует множество способов проектирования системы. Просто продолжайте то, что вы делаете, и вы увидите результат.

Ответ №1:

В вашем примере мне становится ясно, что назначение контроллера заключается не только в управлении одним и единственным слотом. Он используется для управления более чем одним слотом и управления взаимодействием/состоянием между ними.

Так что само по себе вам не нужен контроллер, когда у вас есть слоты, с которыми не нужно взаимодействовать. Концепция контроллеров является обычной практикой, многие разработчики внедряют их с самого начала, так как знают, что их программа будет расширяться и усложняться.

Еще одно хорошее использование контроллера-это когда вы предоставляете слот игроку(игрокам) в вашей игре. Контроллер может отслеживать, у кого есть слот или где находятся слоты, которые были выбраны в игре.

Комментарии:

1. Спасибо за ваш ответ. Итак, я полагаю, что наличие контроллера-это правильный путь? Я имею в виду, как еще я мог бы управлять несколькими слотами одновременно?

2. Да, если у вас есть несколько слотов и вы хотите управлять ими, контроллер-это правильный путь..