Also habe ich ein paar Klassen wie MainWindow
, MenuPanel
, GamePanel
, GameEngine
, Player
und so weiter ...Java: Instanz wirklich besser als statisch?
Meine Frage ist, obwohl ich viel über statische vs Instanz gelesen habe, die mehr empfohlen werden sollen, zu verwenden, , sieht eine meiner Linien nach wie folgt aus: MainWindow.getGamePanel().getPlayer1().getName().toLowerCase().compareTo(...);
oder MainWindow.getGamePanel().getLabels()[0].getIcon();
glauben Sie, das ist eine gute Praxis ist so hart versucht, nicht Statik zu verwenden, wo jedes Objekt unterschiedliche Eigenschaften und sind die Dinge nicht hat t verallgemeinert, anstatt vielleicht die labels
oder die players
und names
statische deklarieren und eine viel einfach zu wiederverwenden und Code lesen?
Die Idee ist, ich diese langen Codes verwendet, weil sicherlich wäre es peinlich sein, ein GamePanel
(visuelle Klasse) Objekt in der Player
(mehr wie ein logischen) Klasse zum Beispiel zu erstellen. Also habe ich gerade wie ein Objekt jeder Klasse in MainWindow
erstellt (nicht die Hauptklasse, nur die JFrame-Klasse) und erstellt static getters
für jeden von ihnen.
Ich habe viel Mühe zu erzählen, was Sie beschreiben ... es klingt, als ob Sie Ihren Code auf eine sehr seltsame Weise strukturiert haben. 'MainWindow.getGamePanel(). GetPlayer1(). GetName(). ToLowerCase(). CompareTo (...);' sieht mir sehr verdächtig aus ... es sieht so aus als ob du immer noch alles mit statischen Referenzen machst, du einfach Verwenden Sie eine statische Methode auf oberster Ebene, die eine bestimmte Instanz zurückgibt. Es ist schwer zu sagen, ohne mehr von Ihrem Code zu sehen, aber ich wette, dass die Dinge neu strukturiert werden könnten, so dass Sie diese langen Zugriffsketten überhaupt nicht benötigen. –
Zeilen wie 'MainWindow.getGamePanel(). GetPlayer1(). GetName(). ToLowerCase(). CompareTo (...);' kann auch durch schlechtes Design verursacht werden, nicht _just_ durch Verwendung von Instanzen. –