| |

VB.NET - Ein- und UmsteigerKommunikation zwischen Klassen, Vererbung... | |  | Autor: dariegel | Datum: 25.09.08 00:34 |
| Abend zusammen,
ich programmiere seit einiger Zeit einen Tetris-Klon, um meine .NET-Kenntnisse voranzubringen. Ich habe zwei Klassen, GameBoard und Preview, die jeweils von der .NET-Klasse LabelLabel erben. Sie dienen - wie die Namen schon verraten - zur Darstellung des Spielfeldes bzw. der Vorschau auf den nächsten Spielstein und wurden daher um diverse Methoden und Eigenschaften erweitert um dies umzusetzen.
Soweit funtkioniert alles sehr gut... nur habe ich das Gefühl, dass ich das alles noch effizienter gestalten könnte. Z.B. die Kommunikation zwischen den Klassen:
So implementiert GameBoard beispielsweise ein Objekt nextTile der benutzerdefinierten Klasse Tile, welches den kommenden Spielstein repräsentiert. Die Klasse Preview muss nun auf die Eigenschaft NextTile der GameBoard-Klasse zugreifen, um das zukünftige Teil zeichnen zu können.
Oder ein anderes Beispiel: die Definition der Spielsteinfarben. Diese sollten ja für die Vorschau und das Spielfeld gleich sein, deshalb "holt" sich die Klasse Preview über die entsprechende Methode der Klasse GameBoard die Farben zur Darstellung der Vorschau.
Mir kommt mein Code recht umflexibel vor. Die beiden Klassen sind nicht richtig unabhängig voneinander, sondern greifen ständig aufeinander zu. Natürlich habe ich Vererbung und Polymorphismus verstanden, weiß diese aber nicht so recht korrekt umzusetzen. Ich könnte theoretisch eine Basisklasse (abgeleitet von Label) für Vorschau und Spielfeld schreiben, welche gemeinsame Methoden und Eigenschaften wie etwa die Blockgröße in sich vereint. Die abgeleiteten Klassen GameBoard und Preview müssten dann durch Überschreiben jeweils eine eigene OnPaint/Draw-Methode (ggf. natürlich auch weitere Methoden etc.) erhalten. Beide Klassen sind aber gerade so unterschiedlich, dass sich eine gemeinsame Basisklasse vielleicht nicht "lohnen" würde.
Habt Ihr evtl. Tipps zur sauberen Strukturierung bzw. gemeinsamen geordneten Nutzung von Informationen durch beide Klassen? Oder einen gänzlich anderen Vorschlag zur Ausführung von GameBoard und Preview?
Vielen Dank für's Lesen!
Gruß,
Alex |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Neu! sevEingabe 3.0 
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|