Skocz do zawartości
  • 0

Statyczne metody


kerpson

Pytanie

Siema, słyszałem, że kto pyta nie błądzi. Na start powiem, że jeżeli jesteś zdania "nie wiem ale sie wypowiem" to tego nie rób, plz.

Mamy np. taką klasę TpaManager, no i uważam, że powinna być ona statyczna, czy jednak myślicie, że obiektowa ?

#Static
public final class TpaManager {

    private TpaManager() {}

    private final static Cache<UUID, UUID> TPA_LIST = CacheBuilder.newBuilder().expireAfterWrite(60, TimeUnit.SECONDS).build();

    public static void addRequest(UUID uuid, UUID uuid1) {
        TPA_LIST.asMap().put(uuid1, uuid);
    }

    public static void removeRequest(UUID uuid) {
        TPA_LIST.asMap().remove(uuid);
    }

    public static Player getPlayer(UUID uuid) {
        return Bukkit.getPlayer(TPA_LIST.asMap().get(uuid));
    }
}

Czy lepiej zrobić ją obiektowo ?

 

No i przykła 2, taki NameTagManager, no i tu uważam, że obiektowe wyjście jest lepsze, ponieważ cały czas jest inicjacja dla danego gracza czy jednak uważacie, że taka klasa ma być static?

public class NameTagManager {

    public void initPlayer(Player p) {
        final Scoreboard sb = Bukkit.getScoreboardManager().getNewScoreboard();
        final User u = UserUtil.get(p);
        final Guild g = u.getGuild();
        /reszta kodu
    }

 

Odnośnik do komentarza
https://skript.pl/temat/40881-statyczne-metody/
Udostępnij na innych stronach

4 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

To nie ma żadnego większego znaczenia, możesz robić tak i tak, a nawet możesz zrobić enuma. 

 

public enum TestManager {
  INSTANCE;
  
  public void someAction() {
  }
  
}

Ogólnie ja osobiście jak mam trudny dostęp do obiektu (np. nie mam jak go pobrać to korzystam z static albo enuma) Dla mnie osobiście nie robi to większej różnicy, rób tak jak wolisz. Warto też wspomnieć że obiekt jest inicjalizowany inaczej niż static. 

 

Ogólnie dużo osób mówi, aby używać jak najmniej STATIC, bo java to niby język obiektowy.. Ale według mnie powinieneś używać obiektów tylko gdy jest to potrzebne, czyli np. masz 10 userow, UserManager jest jeden.. Nie ma dużej różnicy chyba poza tym że inaczej są klasy ladowane i obiekty, no i w obiektach możesz trzymać różne dane per object

 

Bardziej moja uwagę przykuło to, że używasz Cache, a potem i tak wszędzie uzywasz cacheMap.asMap(), co nie ma trochę sensu i nawet nie wiem czy zadziała, powinienes używać tych metod od Cache, czyli getIfPresent itp zamiast asMap().get, + w getPlayer może ci rzucić nullem i nic z tym nie robisz

Edytowane przez yooniks
Odnośnik do komentarza
https://skript.pl/temat/40881-statyczne-metody/#findComment-254780
Udostępnij na innych stronach

  • 0
19 minut temu, yooniks napisał:

To nie ma żadnego większego znaczenia, możesz robić tak i tak, a nawet możesz zrobić enuma. 

 


public enum TestManager {
  INSTANCE;
  
  public void someAction() {
  }
  
}

Ogólnie ja osobiście jak mam trudny dostęp do obiektu (np. nie mam jak go pobrać to korzystam z static albo enuma) Dla mnie osobiście nie robi to większej różnicy, rób tak jak wolisz. Warto też wspomnieć że obiekt jest inicjalizowany inaczej niż static. 

 

Ogólnie dużo osób mówi, aby używać jak najmniej STATIC, bo java to niby język obiektowy.. Ale według mnie powinieneś używać obiektów tylko gdy jest to potrzebne, czyli np. masz 10 userow, UserManager jest jeden.. Nie ma dużej różnicy chyba poza tym że inaczej są klasy ladowane i obiekty, no i w obiektach możesz trzymać różne dane per object

 

Bardziej moja uwagę przykuło to, że używasz Cache, a potem i tak wszędzie uzywasz cacheMap.asMap(), co nie ma trochę sensu i nawet nie wiem czy zadziała, powinienes używać tych metod od Cache, czyli getIfPresent itp zamiast asMap().get, + w getPlayer może ci rzucić nullem i nic z tym nie robisz

dzięki za konkretną odpowiedź :)

Odnośnik do komentarza
https://skript.pl/temat/40881-statyczne-metody/#findComment-254781
Udostępnij na innych stronach

  • 0
14 minut temu, rusekh napisał:

W twojej książce którą kupiłeś pisało, że Java to język enumów

edit:
A tam gdzie pisze twórca to powinno być James Bond

Nie kupowałem ksiazek + jestem samoukiem, only internet :) Probujesz być śmieszny, mam nadzieję że kiedyś przyjdzie okres w twoim życiu, że dorośniesz

 

@edit fajne forum że nie mogę zgłosić jego odpowiedzi bo wyskakuje mi że nie mogę otworzyć tej strony, administracja poprawia formatowanie tekstu, ale takich przygłupów ignoruje

Edytowane przez yooniks
Odnośnik do komentarza
https://skript.pl/temat/40881-statyczne-metody/#findComment-254792
Udostępnij na innych stronach

  • 0
21 minut temu, yooniks napisał:

@edit fajne forum że nie mogę zgłosić jego odpowiedzi bo wyskakuje mi że nie mogę otworzyć tej strony, administracja poprawia formatowanie tekstu, ale takich przygłupów ignoruje

On dostał już warna a jego 2 posty i 1 twój post (odpowiadający na post tego trolla) został ukryty a zapewne ty nie odświeżyłeś strony. W jednym temacie oprócz tego już trollował czyli jak tak dalej będzie to zapewne za jakiś czas wyleci z tego forum :/ 

Edytowane przez Peridot
Odnośnik do komentarza
https://skript.pl/temat/40881-statyczne-metody/#findComment-254813
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...