Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Alter Hase
Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
public enum SocialStatusType { NON_CITIZEN, CITIZEN; } public class SocialStatus { public SocialStatusType type; public int fortuneRequirement; } public class Player { public SocialStatusType statusType; public int fortune; } // Hier passiert das eigentlich Interessante public class DoStuffClass { private void processPlayer(Player player) { // Den nächst-höheren Sozialstatus erhalten SocialStatusType superiorStatusType = SocialStatusType.values()[player.statusType.type.ordinal() + 1]; // Wenn der Spieler dessen Fortune-Requirement erreicht -> neuer Status if (player.fortune > ABC) { player.statusType = superiorStatusType; } } } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »damios« (29.08.2018, 22:16)
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Das ist natürlich sehr traurig. Fällt dir keine "Is-a" Relation in Bezug auf Programmierung ein?@BlueCobold Das ist ein nettes Beispiel, aber was das mit meinem Problem zu tun haben soll, ist mir leider völlig schleierhaft.
Finde ich überhaupt nicht. Man braucht bei Spielen meist X Singleton-artige Dienste. Entweder man reicht die Referenzen immer durch, man hinterlegt die als Singleton, man nutzt Dependency-Injection oder man baut sich ein Context-Object. Das muss man aber überall durchreichen, oder man nimmt halt ein ThreadLocal-Konstrukt um den Kontext durch die verschiedenen Ebenen zu bringen.
Na da gibt's ja 1001 Framework in Java, oder was meinst Du? Damit das ganze auch schön auf Android läuft usw. würde ich in diesem Fall vielleicht https://google.github.io/dagger/ empfehlen. Ansonsten fand ich Guice auch sehr schön.Finde ich überhaupt nicht. Man braucht bei Spielen meist X Singleton-artige Dienste. Entweder man reicht die Referenzen immer durch, man hinterlegt die als Singleton, man nutzt Dependency-Injection oder man baut sich ein Context-Object. Das muss man aber überall durchreichen, oder man nimmt halt ein ThreadLocal-Konstrukt um den Kontext durch die verschiedenen Ebenen zu bringen.
In Sprachen wo es Frameworks zur Automatisierung von DI gibt würde ich nichts anderes wählen. Kein Durchreichen, identisches Vorgehen bei Singleton und nicht Singleton, zentral konfiguriert und problemlos beim Testen.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Werbeanzeige