Bezpaństwowcem porównaniu Stateful Transakcje


Original: http://xfront.com/stateless-versus-stateful/

Pomyśl o swoich klasach szkoły matematyki gdzie dowiedziałeś się o, powiedzmy, pierwiastek kwadratowy. Nauczyłeś się, że można wywołać funkcję z argumentem i zwraca wynik, np.

(sqrt 9)
3

Jeśli zadzwonisz jeszcze raz z tym samym argumentem, otrzymasz ten sam wynik:

(sqrt 9)
3

To się nazywa bezpaństwowcem funkcji.

Natomiast, że z następujących funkcji.Funkcja naśladuje sytuację wypłacanie pieniędzy z konta bankowego.Funkcja jest wycofać i trwa jako argument kwotę zostać wycofane. Zwraca saldo pozostałej po wycofaniu. Na przykład, załóżmy, że zaczynają się od 100 dolarów na koncie i wypłacić 25 dolarów:

(withdraw 25)
75

Ponownie wywołać funkcję z tego samego argumentu:

(withdraw 25)
50

Zauważmy, że wyrażenie (wycofanie 25), oceniana dwa razy, daje różne wyniki. To jest inny rodzaj zachowania, niż wykazywane przez pierwiastek kwadratowy.Funkcja wycofania jest stanowa funkcja-utrzymuje rejestr równowagi i ubytki, które za każdym razem zrównoważyć wywoływana jest funkcja.

Funkcja wystąpienia może być przekształcany do bezstanowego funkcji. Nazywają go z dwoma argumentami: kwotę zostać wycofane i zapis transakcji. Tutaj jest dokument XML, który rejestruje początkową równowagę i pierwsze wycofania:

<BankRecord>
      <InitialBalance>100</InitialBalance>
      <Withdrawal>25</Withdrawal>
      <CurrentBalance>75</CurrentBalance>
</BankRecord>

Wywołać funkcję nowego wycofania z kwoty wypłaty i BankRecord i zwraca zaktualizowany BankRecord:

(withdraw 25 BankRecord)
<BankRecord>
      <InitialBalance>100</InitialBalance>
      <Withdrawal>25</Withdrawal>
      <Withdrawal>25</Withdrawal>
      <CurrentBalance>50</CurrentBalance>
</BankRecord>

Jeśli funkcja nazywa się nowy wycofać ponownie z tymi samymi argumentami, to daje taki sam efekt.

Z funkcją nowego wycofania spoczywa na użytkownika funkcji, aby zachować jego rekordy. W funkcji poprzedniej Stateful-wycofania ciężar był na funkcji do prowadzenia ewidencji użytkowników.

Teraz zwrócimy uwagę na stronach internetowych. Wiele z nich jest bezpaństwowcem, a jednak wydają się być stanowe, witają Cię Witaj Roger, witamy z powrotem i zapamięta ostatni opiera się na zakup ostatniego zakupu, może być zainteresowany w tych książkach. Jeśli strona jest bezpaństwowcem, to jak to robi? Odpowiedź: za kulisami tworzy rekord w Twoim imieniu i sklepów, które zapis na komputerze. Gdy użytkownik odwiedza witrynę internetową pobiera rekord z komputera i korzysta z informacji w rejestrze, aby zlokalizować pozdrawiam was i książki dotyczące ostatniego zakupu. Ten zapis jest nazywany cookies.

Teraz już wiesz, że różnica między bezpaństwowcem i stanowej transakcji.

Aby uzyskać więcej informacji, zobacz Struktura książki i interpretacja programów komputerowych, s. 219-220.

Ostatnia aktualizacja: 02 lipca 2010