Hermetyzacja (informatyka): Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
→‎Cel: Letter missing - changing "zdaniem" to "zadaniem".
literówka
Linia 15:
 
==== Przykład ====
Posiadając zdefiniowany interfejs programista klasy ma pełną swobodę implementacji mechanizmu, w jaki klasa będzie wykonywała swoje zdanie. Jeżeli klasa ma za zadanie np. gromadzić zbiór liczb podawanych do niej pojedynczo a następnie, w dowolnym momencie, zwrócić maksimum tej kolekcji, to interfejs w żaden sposób nie narzuca programiście klasy konkretnego sposobu wykonania tej implementacji. Na przykładzie języka [[C++]], klasa może to wewnętrznie wykonywać w oparciu o składową typu <code>std::set</code> jak również <code>std::vector</code>, który każdorazowo przezprzed zwróceniem wartości maksymalnej będzie poddawany sortowaniu. Od strony użytkownika klasy sposób implementacji nie powinien być szczególnie interesujący, a co ważniejsze, nie powinien wpływać na sposób używania klasy.
 
Niech dana będzie klasa interfejsowa definiująca jedynie interfejs, czyli zbiór jedynie publicznych, abstrakcyjnych i [[Metoda_wirtualna|wirtualnych metod]]. Metody te, zgodnie z definicją metody abstrakcyjnej, nie są wytłumaczone w obrębie tej klasy, a jedynie określono, że klasa dziedzicząca po tej klasie wytłumaczyć jak każda z tych metod działa. Na przykładzie: