AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi OOP: Unidirektionale Beziehung wie realisieren?
Thema durchsuchen
Ansicht
Themen-Optionen

OOP: Unidirektionale Beziehung wie realisieren?

Ein Thema von Passi077 · begonnen am 18. Apr 2006 · letzter Beitrag vom 18. Apr 2006
Antwort Antwort
Passi077

Registriert seit: 7. Okt 2004
23 Beiträge
 
#1

OOP: Unidirektionale Beziehung wie realisieren?

  Alt 18. Apr 2006, 17:08
Hi,

ich wollte gerade mein Projekt anfangen, da ist mir aufgefallen das ich noch gar nicht weiß wie man unidirektionale Beziehungen zwischen Klassen herstellt.

Also, Beispiel:

Ich habe 3 Klassen: cSteuerung, cSpieler und cSpielfeld.

Geplante Assoziationen: cSteuerung kennt cSpieler, cSpieler kennt cSpielfeld, cSpielfeld kennt cSteuerung.

Bisher sah das dann bei mir so aus:

Delphi-Quellcode:

uses
  uSpieler; // Diese beiden Units enthalten jeweils die Klassen

type
  Steuerung=class

  private
    Spieler: cSpieler;

  public
    constructor create();

end;
Und im Konstruktor wird dann ein Objekt der Klasse cSpieler instanziiert (Spieler:=cSpieler.create). Genau das ist aber jetzt mein Problem, da ja auch andere Klassen die Selbe Klasse und das selbe Objekt von dieser Klasse kennen sollen. Ich kann also nicht in jeder Klasse ein neues Objekt erzeugen..

Deswegen denke ich muss man ähnlich wie bei der bidirektionalen Beziehung vorgehen und dem Konstruktor eine Referenz übergeben..?

Ich hab jetzt schon dies und das durchüberlegt, aber ich komme nicht drauf. Entweder sind noch gar keine Objekte der Klasse erstellt so das ich keine Referenz übergeben kann oder ich lande wieder beim Alten.

Ich hoffe Ihr könnt mir am besten ein kleines Beispiel geben wie oben genannte Assoziationen in Delphi aussehen müssten.

Danke + Grüße
Passi
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: OOP: Unidirektionale Beziehung wie realisieren?

  Alt 18. Apr 2006, 20:34
Zitat:
Geplante Assoziationen: cSteuerung kennt cSpieler, cSpieler kennt cSpielfeld, cSpielfeld kennt cSteuerung.
da kennen nicht besitzen ist würde ich alle Klassen global iniantiieren und in den Objekten nur referenzieren.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: OOP: Unidirektionale Beziehung wie realisieren?

  Alt 18. Apr 2006, 20:43
in dem Fall wäre es das beste die Basisklassen innerhalb einer Unit zu haben und dann forwarddeclarationen zu verwenden:
Delphi-Quellcode:
type
  TSpielfeld = class;
  TSpieler = class;

  TSteuerung = class(TObject)
  public
    constructor Create(ASpieler: TSpieler);
  end;

  TSpieler = class(TObject)
  public
    constructor Create(ASpielfeld: TSpielfeld);
  end;

  TSpielfeld = class(TObject)
  public
    constructor Create(ASteuerung: TSteuerung);
  end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz