AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

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.003 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

State pattern in DELPHI

  Alt 15. Sep 2021, 12: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
Sinspin

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

AW: State pattern in DELPHI

  Alt 15. Sep 2021, 13: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
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Jetzt rächt sich die Natur und tötet uns.

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

Registriert seit: 10. Jun 2003
Ort: Berlin
8.106 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: State pattern in DELPHI

  Alt 15. Sep 2021, 14: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
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 +2. Es ist jetzt 14:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf