AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language OOP: Designproblem, abhängige Klassen entwirren

OOP: Designproblem, abhängige Klassen entwirren

Ein Thema von alzaimar · begonnen am 25. Jun 2008 · letzter Beitrag vom 25. Jun 2008
 
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

OOP: Designproblem, abhängige Klassen entwirren

  Alt 25. Jun 2008, 07:45
Hallo,

ich sitze gerade an einer Klassenbibliothek für einen Reportgenerator. Ich habe eine 'Oberklasse', die als Controller fungiert (globale Einstellungen, Nachschlagelisten etc.). Jede Klasse meiner Bibliothek hat einen Verweis auf diese Oberklasse, ungefähr so:

Delphi-Quellcode:
Type
  TMasterClass = Class;
  TSomeItem = Class
  fMaster : TMasterClass;
  End;

  TAnotherItem (TSomeItem)
  End;

  TSomeItemList = Class (TList)
  ...
  End;

  TAnotherItemList = Class (TList)
  ...
  End;

  ...
  TMasterClass = Class
  Private
    fSomeItemList : TSomeItemList;
    fAnotherItemList : TAnotherItemList;
  Public
    Property SomeItemList : TSomeItemList Read fSomeItemList;
    Property AnotherItemList : TAnotherItemList Read fAnotherItemList;
  End;
Nun wird die Unit langsam ziemlich lang und mir fällt keine Methode ein, wie ich das entwirren kann, denn die Basisklasse 'TSomeItem', von der alle anderen Klassen abgeleitet werden, enthält ja einen Verweis auf die Masterklasse, die in der logischen Struktur ganz oben/unten ist.

Ich hatte in einem früheren Verweis einen abstrakten Vorfahren der 'TMasterClass' in einer eigenen Unit deklariert und so die zyklischen Abhängigkeiten entwirrt, nur dann musste ich bei jeden Zugriff auf die Instanz der Masterklasse auf die konkrete Klasse casten, was programmiertipptechnisch blöd und imho kein gutes OOP-Design ist.

Also: Gibt es ein Pattern, ein paar Grundregeln, wie ich diese Geschichte elegant aufdröseln kann? Wie kann ich die einzelnen Nachfahren der 'TSomeItem' in eigene Units packen. Geht das überhaupt? Wenn ich mir die Unit 'DB' anschaue, meine ich fast, das das nicht so einfach ist...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  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 05:30 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