2. Piano d’Azione per Risoluzione Debito Tecnico (Service Locator Pattern)

Questo piano mira a eliminare l’istanziazione locale di SettingsManager e a pulire l’architettura generale delle dipendenze.

Obiettivo: Introdurre un ServiceRegistry in quantum-core per gestire l’accesso ai servizi singleton (SettingsManager, DataManager, ThemeManager) senza “Prop Drilling”.

Fase 1: Infrastruttura Core (Quantum-Core)

  1. Creare fire/core/service_registry.py.

    • Implementare la classe statica ServiceRegistry con metodi register(name, instance) e get(name).

    • Aggiungere gestione errori robusta (se il servizio non esiste).

Fase 2: Bootstrap (Main)
2. Modificare fire/main.py.

  • Dopo aver istanziato SettingsManager e DataManager, registrarli immediatamente nel ServiceRegistry.

Fase 3: Refactoring Consumatori (Fire-App)
3. Modificare fire/synapses/backtest/backtest_tab_widget.py.

  • Rimuovere from fire.settings_manager import SettingsManager.
  • Importare ServiceRegistry.
  • Sostituire settings_mgr = SettingsManager() con settings_mgr = ServiceRegistry.get(“settings”).
  1. (Opzionale/Graduale) Estendere l’uso ad altri componenti che necessitano di servizi (es. ThemeManager che è spesso usato staticamente ma potrebbe beneficiare del registry).