Domanda

Stavo leggendo codice pulito di Robert Martin e in che menziona sul codice essere altamente coesivo:

  

Le classi dovrebbe avere un piccolo numero di   variabili di istanza. Ognuno di   metodi di una classe dovrebbero manipolare   uno o più di tali variabili. Nel   generale il metodo a più variabili   manipola la più coesa che   metodo è quello della sua classe. Una classe in   che ciascuna variabile è utilizzato da ciascun   metodo è al massimo cohesivemethod massimamente coesa

Ma quando stiamo cercando di scrivere codice concorrente, ci sforziamo di limitare la portata di variabili da un unico metodo per evitare condizioni di gara. Ma questo si traduce in codice che è almeno coerente.

Quando si progetta un'applicazione / classe, quello che se preferite - di coesione o di concorrenza?

È stato utile?

Soluzione

mi piace un bel po 'di concetti di Martin, ma le vostre esigenze di codice da eseguire correttamente e se non lo fa, tutte le belle metriche del mondo non stanno andando a farti guardare meglio.

A questo si aggiunge che i problemi di threading sono tra i peggiori ci sono da mettere a punto, e non si dovrebbe compromettere il vostro disegno per la concorrenza di conformarsi con la vostra idea di quello che qualcuno ha scritto in un libro su di coesione. Anche in questo caso, non sto bussando Martin ... Sono sicuro che avrebbe detto la stessa cosa. Dopo tutto, egli riconosce che quasi tutto è in un continuum nella maggior parte dei suoi scritti.

Non sono sicuro che si sta mettendo l'accento in modo del tutto al posto giusto anche se (potrebbe essere solo il modo che sto leggendo la tua domanda). Martin non sta dicendo che si dovrebbe fare come molte variabili vivono a livello di classe il più possibile. Sta dicendo che le variabili livello di classe, quanti stai usando? Se si promuove variabili che non è necessario, si potrebbe non essere sempre maggiore coesione ... si potrebbe essere sempre più stretto accoppiamento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top