AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

State pattern in DELPHI

Ein Thema von bernhard_LA · begonnen am 15. Sep 2021 · letzter Beitrag vom 15. Sep 2021
Antwort Antwort
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.121 Beiträge
 
Delphi 11 Alexandria
 
#1

State pattern in DELPHI

  Alt 15. Sep 2021, 11:10
ich versuche gerade eine Anwendung über die Einführung eines State Pattern
(https://sourcemaking.com/design_patterns/state )
zu verbessern.
Aktuell scheitere ich daran die State Klasse in meiner zweiten unit zu definieren, in dieser unit ist die
eigentlich Klasse ja nur über eine foreward deklaration bekannt. Was mache ich hier falsch ?




Delphi-Quellcode:


unit TProcessor;
///
/// unit 1 mit der Klasse die zukünftig auch eine State class bekommen soll
///
interface

uses Types, Classes;

implementation

type
    TProcessor = class ()
 
    FState : TProcessStatesClass; // kommt dann noch


    function GetState : TProcessStatesClass;
    procedure SetState(const Value : TProcessStatesClass);

    end;



end.


unit ProcessStates;
///
/// unit 2 mit der Ober-Klasse für die states
///

interface

uses Types, Classes;

implementation

type

     TProcessor = class; // // Forward declaration
     TProcessStatesClass = class of TProcessStates;

type TProcessStates = class(TObject)

private

    FProcessor : TProcessor ;

public


end;


end.
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
614 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: State pattern in DELPHI

  Alt 15. Sep 2021, 12:07
Pack alles in ein type und schon geht es.
Allerdings geht Forward nur innerhalb einer Unit. Also die deklaration muss in der gleichen Unit erfolgen.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.

Geändert von Sinspin (15. Sep 2021 um 12:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.332 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: State pattern in DELPHI

  Alt 15. Sep 2021, 13:14
Du möchtest in ProcessStates den Typ TProcessor aus der Unit TProcessor nutzen. Dann musst du die Unit auch unter uses eintragen. Forward nutzt dir da rein gar nichts, das hat eine ganz andere Funktion.

Es ist aber eine sehr schlechte Idee, wenn eine Unit genauso heißt wie der Typ darin (TProcessor).

Ich verstehe allerdings noch nicht was du da eigentlich vor hast. Irgendwie passt der Quelltext nicht so recht zum State Design Pattern. Denn das class of hilft dir da wenig weiter, wenn es um die Implementierung der Aktionen in einer abgeleiteten (!!) Klasse geht. Es geht bei dem Pattern nicht darum den Klassentyp zu wechseln, sondern die Implementierung abhängig vom Zustand!
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  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 21:09 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