Clean Architecture
  • Clean Architecture
  • Che cosa si intende per struttura e architettura
  • Due diversi oggetti di valore
  • Panoramica sui paradigmi
  • La programmazione strutturata
  • La programmazione ad oggetti
  • La programmazione funzionale
  • Principi di progettazione
  • Il principio SRP (Single Responsibility Principle)
  • Il principio OCP (Open-Closed Principle)
  • Il principio LSP (Liskov Substitution Principle)
  • Il principio ISP (Interface Segregation Principle)
  • Il principio DIP (Dependency Inversion Principle)
  • I componenti
  • Coesione dei componenti
  • Accoppiamento dei componenti
  • Che cos'è l'architettura?
  • Indipendenza
  • Delimitazioni: tracciare una linea
  • Anatomia di una delimitazione
  • Politiche e livelli
  • Regole operative
  • Architettura "da urlo"
  • Architettura clean
  • Presenter e Humble Objects
  • Delimitazioni parziali
  • Livelli e delimitazioni
  • Servizi: grandi e piccoli
  • Delimitazione di test
  • Il database è un dettaglio
  • Il Web è un dettaglio
  • I framework sono un dettaglio
  • Caso di studio: vendita di video
  • Manca ancora qualcosa...
Powered by GitBook
On this page
  • Delimitazioni monodimensionali
  • Facade
  • Conclusioni

Was this helpful?

Delimitazioni parziali

PreviousPresenter e Humble ObjectsNextLivelli e delimitazioni

Last updated 5 years ago

Was this helpful?

Le delimitazioni complete dell'architettura sono costose. Isolare completamente due componenti per renderli indipendenti richiede molto lavoro. Un buon architetto deve saper analizzare la situazione e decidere se implementare una delimitazione completa o parziale.

Delimitazioni monodimensionali

Una delimitazione completa dell'architettura impiega delle interfacce di delimitazione reciproche per garantire l'isolamento dei componenti in entrambe le direzioni. Avere questo tipo di separazione in entrambe le direzioni è costoso in termini di lavoro. Una delimitazione parziale, in molte situazioni, è più che sufficiente.

L'interfaccia Service viene usata da Client e implementata da ServiceImpl. L'inversione della dipendenza è presente per separare Client da ServiceImpl. Tuttavia, nulla impedisce a ServiceImpl di utilizzare Client (come mostrato dalle linee tratteggiate). Questa è una tipica delimitazione monodimensionale.

Facade

Un altro esempio di delimitazione parziale è rappresentato dall'utilizzo del pattern Facade.

In questo esempio anche l'inversione della dipendenza viene sacrificata. La delimitazione è definita semplicemente dalla classe Facade, la quale fornisce dei metodi per richiamare dei servizi ai quali il client non deve poter accedere direttamente.

Conclusioni

Abbiamo visto solo alcuni esempi di come poter creare una delimitazione parziale. Sta all'architetto capire dove potrebbe collocarsi, un domani, una delimitazione dell'architettura e se implementare pazialmente o integralmente tale delimitazione.