Supponi di avere una lezione. Può essere davvero una classe che definisce un concetto di dominio come un dipendente, un prodotto su un sito di e-commerce o un'auto. Uno di quegli esempi che sono oldies ma chicche. Secondo l'SRP, quell'oggetto dovrebbe essere responsabile di tutte le "sue" cose.
Considererei un dipendente che prenda un pranzo, un prodotto in vendita o un'auto che acceleri tutti gli esempi di cose che "appartengono" a quegli esempi. Ciò può includere altre aree categoriche di preoccupazione come l'impatto sul database, l'attivazione di un evento o la modifica di una simulazione mentre l'oggetto di origine è ancora responsabile del risultato complessivo.
La lotta che vedo è che tu hai delle architetture molto piatte in cui un oggetto può (potenzialmente) toccare qualcosa o hai degli strati verbali di astrazione su cui gli oggetti possono fare affidamento. Tuttavia, quest'ultimo sembra più come rinunciare alla responsabilità, più strati ci sono tra una cosa e ciò che sta cercando di fare.
Non so davvero dove mi trovo su questo, personalmente. Probabilmente mi trovo a un compromesso dividendo il bambino, per così dire, nella maggior parte di quegli scenari che si sentono in qualche modo sbagliati, qualunque cosa io faccia. Essendo la metà del 2015, c'è stato qualche sviluppo verso questo tipo di problemi che forniscono buone guide su dove si dovrebbe essere?
Comprendo la composizione sui consigli di ereditarietà nella costruzione di oggetti, ma quando stai formulando idee e non costruisci ancora oggetti, c'è un chiaro modo "buono" per farlo?
Modifica: Quindi, con la possibile duplicazione di È SRP (Principio di responsabilità singola ) obiettivo? , non penso che sia così. Non sto insinuando che sia o dovrebbe essere obiettivo. Sono curioso di sapere se ci sono stati miglioramenti nelle scuole di pensiero intorno a questo argomento. Ho capito che è soggettivo. Per illustrare: non penso che qualcuno possa dire che il software di scrittura ha uno, metodo oggettivamente corretto, ma SOLID è spesso dato come guida per scrivere software "buono". Allo stesso modo, dato SOLID, dov'è lo spazio di pensiero attorno all'SRP e alla proprietà dell'oggetto?