Sto studiando i principi SOLID e sto riscontrando alcuni problemi relativi al Pattern delle specifiche e all'apertura / principio chiuso.
Il fatto è che il pattern Specification introdotto da Eric Evans e Martin Fowlers crea un po 'di astrazione e un modo veramente aperto per gestire le regole aziendali.
Ma mi stavo chiedendo se fosse davvero basato sul principio Aperto / chiuso.
Il fatto è che, quando abbiamo bisogno di una nuova regola, possiamo estenderla dalla nostra classe di specifiche genitore. Quindi, è aperto in estensione, è un buon punto da un punto di vista SOLIDO.
D'altra parte, lo schema delle specifiche si basa sulla combinazione di regole, quindi dobbiamo modificare il codice delle regole, o almeno il codice della regola genitore. In questo modo, siamo aperti in modifica in una classe che, a mio avviso, non dovrebbe essere modificata.
Probabilmente mi sto rendendo conto di qualcosa in questo processo.
Qualcuno può spiegarmi:
- In che modo (se è il caso) lo schema delle specifiche rispetta il principio OC?
- Esiste un'alternativa a questo modello?