Co to jest ukrywanie informacji?
Ukrywanie informacji, tak jak dotyczy komputerów, polega na oddzieleniu części programu od innych części. Jest wiele powodów, aby to zrobić, jednym z najczęstszych jest łatwość aktualizacji. Jeśli program oddziela swój rdzeń od interfejsu, to jeden lub drugi można łatwo zmienić bez wpływu na partnera. Umożliwia to niewielkie zmiany w podstawowych funkcjach programu lub potencjał skalowalnego interfejsu, a jednocześnie zapewnia prosty proces aktualizacji programu. Kluczową częścią ukrywania informacji jest enkapsulacja, dzięki czemu każdy segment programu jest oddzielony od wszystkich innych.
Istnieje wiele różnych sposobów pisania programów komputerowych. Wczesne języki wymagały od programisty pisania programu w ciągłej sekwencji; pierwsza linia programu była na górze, a ostatnia na dole. Gdy program działał, zasadniczo poruszał się w dół po kodzie.
Współczesne języki programowania rzadko działają w tak ścisły sposób. Wielu polega na pojedynczych „obiektach”, z których każdy wykona określone zadanie. To nie tylko upraszcza pisanie programu, ale pozwala na ciągłe działanie określonego fragmentu kodu bez konieczności jego przepisywania. Na przykład, jeśli program wymaga wyniku z określonej funkcji matematycznej pięć razy, zamiast zapisywać ten proces pięć razy, programiści przekształcą tę funkcję w obiekt i program wywoła ją pięć razy.
Procesy stosowane w ukrywaniu informacji opierają się na obiektowej naturze programowania. Podczas pisania programu, który wykorzystuje te pojęcia, obiekty są wyznaczane dla poszczególnych części programu. W takim przypadku określony obiekt może mieć wiele wersji, z których każda jest wywoływana przez inny segment programu. W powyższym przykładzie to samo wywołanie jest wykonywane pięć razy w programie. Jeśli dwa z tych wywołań zostały wykonane przez interfejs, a program podstawowy wykonał trzy, wówczas programiści zapisaliby dwa obiekty, które byłyby praktycznie identyczne.
Głównym powodem, dla którego programy wykorzystują ukrywanie informacji, jest uproszczenie modyfikacji. Jeśli część programu używa tylko własnych obiektów, łatwiej jest zmodyfikować tę część programu. Jeśli obiekty są współużytkowane przez program, jedna niewielka zmiana może spowodować awarię w pozornie niepowiązanej części systemu.
Drugim powodem ukrywania informacji jest bezpieczeństwo. Jeśli każda część programu działa tak niezależnie, jak to możliwe, trudniej jest kaskadować szkodliwy proces w systemie. Na przykład, jeśli złośliwy program uzyska dostęp do określonej części zamkniętego systemu, może uzyskać dostęp tylko do części, z którą się początkowo napotyka. Pozostałe części programu pozostają, przynajmniej tymczasowo, nietknięte.