AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

OOP Frage bei Spiel

Ein Thema von DeerHunter · begonnen am 17. Okt 2004 · letzter Beitrag vom 19. Okt 2004
 
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#10

Re: OOP Frage bei Spiel

  Alt 18. Okt 2004, 10:04
Zitat von DeerHunter:
Ich versuche gerade mich ein wenig in OOP zu üben
Hallo DeerHunter,

wenn Du Dich wirklich in OOP üben willst, solltest Du vor allem versuchen, ohne Unterscheidungen der Typen Deine Funktionalität abzubilden. Also keine Kunstrukte der Art:
Delphi-Quellcode:
case myObject.ClassType of
  TMyClass1: DoSth;
  TMyClass2: DoSthElse;
  ...
zu verwenden (zumal dies in Delphi ohnehin nicht ohne weiteres mit einem case möglich ist), sondern Delegation und Vererbung ausnutzen.
Möchtest Du bspw. einen unterschiedlichen Text in Abhängigkeit der Klasse ausgeben, könnte eine Lösung so aussehen:
Delphi-Quellcode:
type
  TMyBaseClass = class
  public
    function GetText: string; virtual; abstract;
  end;
  
  TMyClassA = class(TMyBaseClass)
  public
    function GetText: string; override;
  end;
  
  TMyClassB = class(TMyBaseClass)
  public
    function GetText: string; override;
  end;
Deine Liste erwartet dann lediglich Exemplar der Klasse TMyBaseClass und führt die Operation GetText aus.

Verfolgt man diesen Ansatz konsequent (zB für das Zeichnen, Laden, Speichern, Bewegen, etc.), kann der Klient (der Programmteil, der mit heterogenen Klassen arbeitet) zwar von der konkreten Klasse abstrahieren, jedoch überfrachtest Du entweder Deine Klassen mit zu vielen Methoden und schaffst eine Art "ich kann alles"-Klasse, die wohl schwer zu beherrschen sein wird (typisch für Delphi-Programme ) , oder Du machst Dich zu sehr von einer strikten Vererbungslinie abhängig.

Wenn Du an diesem Punkt angekommen sein solltest, lohnt sich ggf ein Blick in die Menge von Entwurfsmustern (hier: Besuchermuster/Visitor Pattern) oder der Einsatz von Interfaces.

Viel Erfolg!
gruß, choose
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz