Hermetyzacja (informatyka): Różnice pomiędzy wersjami
[wersja przejrzana] | [wersja przejrzana] |
Usunięta treść Dodana treść
m Dodaję nagłówek przed Szablon:Przypisy |
drobne redakcyjne |
||
Linia 1:
'''Hermetyzacja''' (
Gdy dostęp do wszystkich pól danej klasy jest możliwy wyłącznie poprzez metody, lub inaczej mówiąc: gdy wszystkie pola w klasie znajdują się w sekcji prywatnej lub chronionej, to taką hermetyzację nazywa się ''hermetyzacją pełną''.
Linia 54:
}
</source>
Korzyść z takiego podejścia polega na tym, że interfejs dzięki
==== Wyodrębnianie interfejsu w językach bez
W językach w których nie istnieje mechanizm
=== Uodparnia tworzony model na błędy ===
Linia 149:
</source>
Mamy klasę <code>KontoBankowe</code>. Nie powinno się tak zdarzyć, że stan konta mógłby być modyfikowany przez zwykłe odwołanie się do danej <code>saldo</code> (np.: <code>mojeKonto.saldo = 123;</code>). Tu <code>saldo</code> konta bankowego jest daną prywatną (dostęp jest ''private''), do której dostęp mają tylko funkcje zaprzyjaźnione lub funkcje składowe (wewnętrzne) (tu: <code>podajStanKonta</code>, <code>wplac</code> i <code>wyplac</code>). Powinno się zapewnić maksymalne bezpieczeństwo w odniesieniu do danej <code>saldo</code>. Stąd też metoda <code>TypPieniedzy podajStanKonta()</code> jest oznaczona jako <code>const</code>, wartość kwoty w metodach <code>bool wplac( const TypPieniedzy kwota )</code> i <code>bool wyplac( const TypPieniedzy kwota )</code> jest określona również jako <code>const</code>, aby jej wartość nie została „przypadkiem” zmieniona w trakcie działania tych metod.
Hermetyzacja ma też na celu sprawdzanie poprawności wpisywanych danych, np. czy pozwolić użytkownikowi wpłacić na konto kwotę mającą wartość ujemną?
|