kerpson 551 Opublikowano 22 października 2019 Udostępnij Opublikowano 22 października 2019 Ostatnio tu pusto więc chce się o coś spytać Robię metodę niestatyczną dla klasy MySQL i wygląda tak: (przykład) public void createUser(....){ teoretycznie jest więcej voidów, ale mniejsza. W klasie głównej robię: private MySQL mysql; @Override public void onEnable(){ this.mysql = new MySQL(); } public MySQL getSql(){ return this.mysql; } No a w innej klasie private final MySQL mysql; public Klasa(Main plugin){ this.mysql = plugin.getSql(); } No i główne pytanie: Czy jest różnica, jeżeli w klasie MySQL dopiszę: Main plugin; public MySQL(Main plugin){ this.plugin = plugin; } a w klasie głównej dodam tylko new MySQL(this); Klasa sql nie będzie potrzebować "plugin", więc go nie dałem, bo jest niepotrzebny. Czy to błąd? Czy klasa sql powinna mieć to odwołanie jakie powyżej ? Odnośnik do komentarza https://skript.pl/temat/35317-takie-jedno-pytanie/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 Queito 104 Opublikowano 22 października 2019 Udostępnij Opublikowano 22 października 2019 jezeli nie korzystasz z maina w tej klasie to po co ja tam dodawac? kerpson 1 Odnośnik do komentarza https://skript.pl/temat/35317-takie-jedno-pytanie/#findComment-226832 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Toranktto 32 Opublikowano 22 października 2019 Udostępnij Opublikowano 22 października 2019 Klasy głównej pluginu nie nazywa się Main, to jedyny błąd w tym kodzie. kerpson 1 Odnośnik do komentarza https://skript.pl/temat/35317-takie-jedno-pytanie/#findComment-226835 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 551 Opublikowano 22 października 2019 Autor Udostępnij Opublikowano 22 października 2019 12 minut temu, Toranktto napisał: Klasy głównej pluginu nie nazywa się Main, to jedyny błąd w tym kodzie. Main to był przykład, dzięki za rade Odnośnik do komentarza https://skript.pl/temat/35317-takie-jedno-pytanie/#findComment-226836 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 551 Opublikowano 22 października 2019 Autor Udostępnij Opublikowano 22 października 2019 Proszę o zamknięcie Odnośnik do komentarza https://skript.pl/temat/35317-takie-jedno-pytanie/#findComment-226837 Udostępnij na innych stronach Więcej opcji udostępniania...
0 yooniks 347 Opublikowano 23 października 2019 Udostępnij Opublikowano 23 października 2019 (edytowane) Cytat Robię metodę niestatyczną dla klasy MySQL i wygląda tak: (przykład) public void createUser(....){ a ja tak tylko chcialem powiedziec ze mzesz zrobic to ladniej i lepiej, zamiast ladowanie wszystkiego w jednej klasie mysql podziel to na kilka czesci, np. mysql ma tylko getConnection throws exception; (i proponowałbym np. interfejs SQLDatabase + implementacja MySQLDatabase (uzywaj hikari)) interfejs DataInitializer<ID, OBJ> (+ implementacje, np. public class UserDataInitializer implements DataInitializer<UUID, User>, tak samo z gildią itp - w tym interfejscie np. metoda loadAll, saveAll, lub load(ID id), save(OBJ object) no i oczywiscie te wszystkie metody maja przekazywac sqlexception dalej - dopiero w tasku masz sprawdzac czy zapisanie/zaladowanie nie poszlo i wtedy cos z tym robic) w jakiejs klasie trzymasz wszystkie te DataInitializery i robisz jakiegos taska ktory te wszystkie datainitializery zbiera i wykonuje np. save dla wszystkich obiektow (ja w natalciaguilds u mnie na githubie mialem zamiar to zrobic ale podszedlem bez pomyslu i pozniej to zmienialem tysiac razy az w koncu wyglada jak syf i jest niedokonczone, anyway - robie tak w kazdym innym pluginie ktory trzyma wiecej obiektow do zapisania do bazy danych) A tak to wgl nie rozumiem całego tematu i nie wiem o co chodzi xD jakos dziwnie to napisales i nie moge zrozumiec ocb Edytowane 23 października 2019 przez yooniks Odnośnik do komentarza https://skript.pl/temat/35317-takie-jedno-pytanie/#findComment-226853 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 551 Opublikowano 23 października 2019 Autor Udostępnij Opublikowano 23 października 2019 32 minuty temu, yooniks napisał: a ja tak tylko chcialem powiedziec ze mzesz zrobic to ladniej i lepiej, zamiast ladowanie wszystkiego w jednej klasie mysql podziel to na kilka czesci, np. mysql ma tylko getConnection throws exception; (i proponowałbym np. interfejs SQLDatabase + implementacja MySQLDatabase (uzywaj hikari)) interfejs DataInitializer<ID, OBJ> (+ implementacje, np. public class UserDataInitializer implements DataInitializer<UUID, User>, tak samo z gildią itp - w tym interfejscie np. metoda loadAll, saveAll, lub load(ID id), save(OBJ object) no i oczywiscie te wszystkie metody maja przekazywac sqlexception dalej - dopiero w tasku masz sprawdzac czy zapisanie/zaladowanie nie poszlo i wtedy cos z tym robic) w jakiejs klasie trzymasz wszystkie te DataInitializery i robisz jakiegos taska ktory te wszystkie datainitializery zbiera i wykonuje np. save dla wszystkich obiektow (ja w natalciaguilds u mnie na githubie mialem zamiar to zrobic ale podszedlem bez pomyslu i pozniej to zmienialem tysiac razy az w koncu wyglada jak syf i jest niedokonczone, anyway - robie tak w kazdym innym pluginie ktory trzyma wiecej obiektow do zapisania do bazy danych) A tak to wgl nie rozumiem całego tematu i nie wiem o co chodzi xD jakos dziwnie to napisales i nie moge zrozumiec ocb Dzięki za radę. Sam myślałem jak to napisać długo xd Odnośnik do komentarza https://skript.pl/temat/35317-takie-jedno-pytanie/#findComment-226854 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Gość Usunięty#5541 Opublikowano 23 października 2019 Udostępnij Opublikowano 23 października 2019 Problem został rozwiązany. Odnośnik do komentarza https://skript.pl/temat/35317-takie-jedno-pytanie/#findComment-226856 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
kerpson 551
Ostatnio tu pusto więc chce się o coś spytać
Robię metodę niestatyczną dla klasy MySQL i wygląda tak: (przykład)
public void createUser(....){teoretycznie jest więcej voidów, ale mniejsza. W klasie głównej robię:
private MySQL mysql; @Override public void onEnable(){ this.mysql = new MySQL(); } public MySQL getSql(){ return this.mysql; }No a w innej klasie
private final MySQL mysql; public Klasa(Main plugin){ this.mysql = plugin.getSql(); }No i główne pytanie: Czy jest różnica, jeżeli w klasie MySQL dopiszę:
Main plugin; public MySQL(Main plugin){ this.plugin = plugin; }a w klasie głównej dodam tylko new MySQL(this);
Klasa sql nie będzie potrzebować "plugin", więc go nie dałem, bo jest niepotrzebny.
Czy to błąd? Czy klasa sql powinna mieć to odwołanie jakie powyżej ?
Odnośnik do komentarza
https://skript.pl/temat/35317-takie-jedno-pytanie/Udostępnij na innych stronach
7 odpowiedzi na to pytanie
Rekomendowane odpowiedzi