2010-10-15 8 views
5

Sto visualizzando questa lezione (http://www.youtube.com/watch?v=aAb7hSCtvGw&hl=nl) ea circa 34 minuti, viene menzionato un punto elenco su una diapositiva che indica "lo spazio dello stato del documento con molta attenzione".Che cos'è lo spazio degli stati?

Che cos'è lo spazio di stato? Perché dovrei documentarlo "molto attentamente"? Sfortunatamente, non ho alcun suono sulla macchina che sto pubblicando da adesso, ma le diapositive stesse sono estremamente utili per il mio apprendimento (sarebbe ancora più utile con il suono).

Grazie

risposta

4

Uno spazio di stato è l'insieme di stati possibili, in questo caso di un oggetto.

Nell'audio, in pratica sta dicendo che è necessario documentare quali operazioni sono consentite in quali stati, e se qualsiasi operazione modifica lo stato dell'oggetto (che cambierebbe l'insieme di operazioni consentite). Egli menziona questo è particolarmente importante per gli oggetti mutabili.

Utilizza Data e Calendar da Java come esempi di API in cui questo è un problema, ma non entra nelle specifiche.

Per fornire un esempio concreto (ma semplificato), prendere in considerazione una connessione TCP. Questo avrebbe fondamentalmente due stati, aperto o chiuso. Quando è chiuso, non puoi inviare o ricevere nulla attraverso di esso, quindi le chiamate a quei metodi non sono consentite.

+0

+1 per la bella risposta. Un grande "spazio di stato" mi fa male alla testa. Questo è il motivo per cui preferisco oggetti più immutabili e disegni più semplici. –

1

Parafrasando ciò che dice l'oratore, se l'oggetto è mutevole, è necessario documentare lo spazio degli stati. Quindi fa riferimento all'API di data e calendario di Java che è documentata in questo senso.

Direi che cosa intende dire è che è necessario documentare tutte le funzioni che potrebbero modificare lo stato del codice. Anche quando è un buon (o cattivo) momento di chiamare queste funzioni. Esempio, chiamata a una funzione read() dopo che l'oggetto è closed().

Problemi correlati