Bonjour,
J'implémente le motif Etat en Free Pascal.
Je me pose une question concernant la libération de l'objet. Lorsque je change d'état, je libère donc l'ancien objet état en appelant TContext.SetState... Est-ce la bonne façon de faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 TState = class ... end; TContext = class State : TState; procedure SetState(AState: TState); end; TDefaultState = class(TState) .... procedure TContext.SetState(AState: TState); begin Self.State.Free; Self.State := AState; end; procedure TDefaultState.Run; begin if ... then Self.Context.SetState(TNewState.Create(Self.Context)); end;
Partager