drobne redakcyjne
m (Dodaję nagłówek przed Szablon:Przypisy) |
(drobne redakcyjne) |
||
'''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ą''.
}
</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 ===
</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ą?
|