javascript / expert
Snippet
Polymorphe Zustandsmuster-Architektur für Svelte-Komponenten-Controller
Die Implementierung des klassischen objektorientierten Zustandsmusters (State Pattern) ersetzt komplexe boolesche Verzweigungen in Svelte-Komponenten durch polymorphe Klassen-Methodenaufrufe.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class ViewState {render(controller) { throw new Error('Not implemented'); }}export class IdleState extends ViewState {render(controller) {return { label: 'Idle', canSubmit: false };}}export class ProcessingState extends ViewState {render(controller) {return { label: 'Working...', canSubmit: false };}}export class StateController {#currentState;constructor(initialState) {this.transitionTo(initialState);}transitionTo(state) {this.#currentState = state;}get current() {return this.#currentState.render(this);}}
svelte
Erklärung
1
class ViewState {
Etabliert eine abstrakte Zustandsbasisklasse mit gemeinsamen polymorphen Verhaltensweisen.
2
export class ProcessingState extends ViewState {
Konkrete Zustandsimplementierung, die den aktiven asynchronen Verarbeitungszustand darstellt.
3
this.#currentState = state;
Kapselt die aktuell aktive Zustandsinstanz innerhalb der Kontext-Manager-Klasse.
4
return this.#currentState.render(this);
Delegiert die UI-Zustandsberechnung polymorph basierend auf dem aktuellen Klassentyp.