1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Статические методы при написании плагина

Тема в разделе "Разработка плагинов для новичков", создана пользователем ReloGGrc, 18 ноя 2022.

  1. Автор темы
    ReloGGrc

    ReloGGrc Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    ALis
    Всех приветствую, где-то слышал, что static методы, это не хорошо, и вот решил у знающих людей уточнить почему же? Просто у меня несколько плагинов скажем так, живут на статистических методах. Срочно ли от них избавляться?
     
  2. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Зависит от ситуации. В общем случае - нет, статика это нормально. Другое дело, когда все превращается в static abuse. Например, хранить какую-нибудь Map и редактировать её через статику - скорей плохое использование. А вот какие-нибудь утилитарные методы, статичные фабрики - самое оно.
     
    Последнее редактирование: 18 ноя 2022
  3. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
  4. neverlessy

    neverlessy Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    neverlessy
    upload_2022-11-18_12-51-12.png

    ладно

    (p.s это единственная статическая переменная в моем большом плагине)
     
  5. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Поправил немного формулировку - обращение то, в целом, дело более чем нормальное действие, а вот редактирование уже не очень здраво.
    К слову, в ТАКОМ_ФОРМАТЕ принято писать лишь константы, а не всё, что public static final. Если ты постоянно редактируешь эту мапу, лучше caseList (или cases/caseMap, ибо это явно не лист)
    PHP:
    public static final Map<MaterialStringCUSTOM_TYPE_NAMES Map.of(Material.OBSIDIAN"Камень преткновения"); // Валидно - нельзя изменить, но можно свободно получать информацию
    public static final Map<UUIDIntegerplayerData = new HashMap<>(); // Не очень - по сути глобальная переменная
     
  6. neverlessy

    neverlessy Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    neverlessy
    так прикол в том, что мне надо ее изменить.

    Допустим у меня из конфига в эту мапу загружаются кейсы. В игре игрок может создать новый кейс и он сразу добавится в мапу без перезагрузки конфига или же удалить кейс и он удалится.
     
  7. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Ну так тебе об этом и сказали - не нужно использовать такие названия, если это не константа. В твоем случае было бы грамотней назвать просто caseList.
    Но лично я бы предложил вообще отказаться от статики: сделать CasesManager и сложить туда это поле, убрав статичность. А менеджер можно получать из инстанса плагина
     

Поделиться этой страницей