Dovresti rendere gli oggetti più generici possibile quando pianifichi l'architettura?

-2

Sto cercando di migliorare le mie capacità nel pianificare progetti puliti e modulari con un accoppiamento minimo. È meglio mantenere gli oggetti il più generici possibile?

Se è così, ci sono delle insidie che dovrei cercare di evitare durante la progettazione dell'architettura?

    
posta Pyreal 15.04.2018 - 20:19
fonte

2 risposte

2

Rendere ogni oggetto generico è sciocco.

Rendere ogni oggetto specifico è sciocco.

Ogni oggetto dovrebbe avere un nome che assicuri che ciò che si trova all'interno non sia una sorpresa. Dovrebbe chiarire cosa vi appartiene al suo interno e cosa appartiene all'esterno. Altrimenti qualcuno lo riempirà di confusione. L'interno dovrebbe assomigliare al tuo cassetto di argenteria. Non il tuo cassetto della spazzatura. Può accettare più messaggi (hanno molti metodi) ma il lavoro dovrebbe concentrarsi su una sola idea. Dovrebbe avere una singola responsabilità. Dovrebbe essere l'unico e unico posto in cui è necessario apportare modifiche quando si modifica la decisione relativa al design a cui si rivolge.

Quanto generico o specifico dovrebbe essere dipende da quanto è lontano da input o output. Tutto ciò che è vicino a qualsiasi tipo di I / O (file, DB, interfaccia grafica, web, controlli, ecc.) Dovrà essere specifico e cambierà spesso. Qualunque cosa lontana dall'IO e dalla politica di alto livello sarà più generica e stabile.

Sii disposto a rimanere specifico ignorando i casi che possono essere rinviati a diversi oggetti fratelli che possono sopportare questo, piuttosto che progettare quello attuale per gestire ogni caso.

Siate disposti a rimanere generici spingendo in modo responsabile ad affrontare i casi in cui escludono completamente l'oggetto e i collaboratori che possono gestirli senza fare in modo che questo oggetto abbia a che fare con i loro dettagli.

Quindi come sapere quando è troppo?

Quando i compiti degli oggetti diventano poco chiari. L'uso dell'oggetto dovrebbe essere ovvio. Se metà dell'oggetto è a un livello di astrazione e l'altra metà a un altro, si svilupperà una tendenza a circondare il suo uso con una logica extra, mantenendolo in supporto vitale. Quando l'oggetto è ben progettato, il codice usando sarà semplice e pulito.

Guarda sempre come verrà usato un oggetto. Progetto spesso scrivendo prima il codice usando. Fai questo e controllando quanto è astratto cadrà naturalmente.

    
risposta data 16.04.2018 - 02:58
fonte
2

Dipende da cosa intendi per generico.

Se intendi generico come "in grado di gestire qualsiasi cosa", allora no. Soprattutto durante la fase di progettazione, non sai come cambieranno le cose. E va bene, non cercare di risolvere tutti questi problemi ora .

Se intendi generico come "fa una cosa, ignorando il contesto", allora sì (con moderazione). Se hai qualcosa che funziona con il testo in un file, forse non legarlo a un percorso di file specifico. Forse non lo legano nemmeno ai file se tutto ciò di cui ha veramente bisogno è il testo.

Si tratta di anticipare il probabile cambiamento e renderlo conto. Non hai bisogno di risolvere problemi che non esistono ancora, ma di solito vale la pena dedicare un po 'di tempo ora in modo che le tue mani non siano legate quando finalmente scopri come le cose devono cambiamento.

    
risposta data 16.04.2018 - 03:34
fonte

Leggi altre domande sui tag