Nella nostra applicazione Rails, stiamo aggiungendo notifiche. Alcuni di questi sono blocking
: arrestano l'avanzamento di qualunque risorsa vengano aggiunti, poiché mancano alcune informazioni su quella risorsa.
Altre notifiche sono semplici notifiche e forniscono solo informazioni.
Oggi ho avuto una discussione con un altro programmatore nel nostro team. Ho creato la struttura ereditaria in questo modo:
Tuttavia, preferirebbe che io aggiungessi semplicemente blocking
come metodo di ritorno booleano su ciascuna notifica e specificasse un elenco di sottoclassi che si bloccano all'interno della classe genitore di notifica.
La differenza tra questi approcci non è molto grande; nel mio approccio non è necessario specificare questo elenco, mantenendo la classe radice più pulita. D'altra parte, Notification::Blocking
neanche la logica speciale che accade in questo momento non è molto ampia.
Quale tipo di astrazione è più adatta a questo problema?