Questo post ci insegna a separare costruzione di un oggetto grafico dalla logica dell'applicazione in due classi diverse e l'obiettivo finale è di avere: classi con classi OR logiche con operatori "nuovi". Sembra davvero bello, poiché proveniente da questo post puoi capire che se hai iniziato a fare DI dovresti farlo completamente e non parzialmente per non infrangere la Legge di Demetra. Quindi dovresti usare le fabbriche, dove tutti gli oggetti sono creati e quindi delegati ad altri per riferimento per creare il grafico dell'oggetto.
Ma cosa succede se ho bisogno di modificare il runtime della struttura del grafico? Cosa succede se alcuni oggetti nella gerarchia inferiore stanno prendendo questa decisione critica? (Ad esempio, ho 2 scene di gioco, e voglio passare dalla scena "InGame" alla scena "MainMenu" se il giocatore colpisce qualche oggetto e quella collisione viene rilevata sotto nella gerarchia.)
Quando stavo leggendo questo speravo che spiegherà la soluzione. Ma in realtà no. Quindi, per favore dimmi come creare nuovi oggetti che cambiano la configurazione del software e hanno bisogno di molti Iniettabili per cambiarli quando sono nella gerarchia inferiore.
Un modo per farlo è passare la Factory, che crea la nuova configurazione, giù per la gerarchia, ma questo rompe il minimo di Demeter.
Un altro modo è usare il pattern Observer e inviare un evento alla Factory, in modo che possa cambiare la struttura del grafo degli oggetti, dato che ha tutti gli iniettabili e può facilmente creare oggetti. Dopotutto, questo è il lavoro che fa. Ma non sono sicuro, questa è la cosa giusta da fare.
Condividi la tua esperienza.