Un altro modo per porre questa domanda è: cosa è Inversion of Control secondo te?L'inversione del controllo è specifica per le lingue OO?
Ho fatto questa domanda perché l'articolo di Wikipedia su IoC è stato dirottato da una spiegazione non OO. Questo è preso dalla discussion page ed è dal 2007:
mi sono permesso di riscrivere della pagina, come il contenuto precedente è stato interamente assorbito dal senso "object oriented" balbettio ...
Non vedo come Inversion of Control abbia senso al di fuori del linguaggio OO. Ci sono già molte spiegazioni per abbandonare il controllo nei linguaggi procedurali (la programmazione degli eventi è uno) e i linguaggi puramente funzionali non hanno bisogno di un concetto come Inversion of Control poiché hanno funzioni di ordine superiore.
Inoltre, nello article dove Martin Fowler elabora su IoC, gestisce esclusivamente gli esempi OO.
Quindi, IoC è esclusivamente un concetto OO e cos'è esattamente?
Per me, IoC tenta di trasformare le funzioni in dati entro i limiti imposti dalla maggior parte dei linguaggi OO e tenta di passare tali funzioni-come-dati come argomenti ad altre funzioni. Questa non è l'unica parte di IoC, ma ce n'è una parte.
C'è anche il modello di progettazione di fabbrica, in cui alberi di oggetti vengono costruiti e configurati prima di essere trasferiti.
Per me, IoC è esclusivamente un concetto OO.
Qual è la tua risposta?
Totalmente d'accordo con questo è più facile da usare con un sistema di tipo ricco. Diventa _even_ più facile con funzioni di cittadini di prima classe. – xtofl