Hermetyzacja polega na ukrywaniu elementów wewnętrznych obiektu przed innymi obiektami. Jak ujął to projektant języka C ++, Bjarne Stroustrup, enkapsulacja ukrywa informacje nie po to, aby ułatwić oszustwa, ale aby zapobiec pomyłkom. Dając innym obiektom minimalny katalog komunikatów (metod publicznych), które mogą wysłać do obiektu, pomagamy im popełniać mniej błędów i unikać wykonywania zadań, które ich nie dotyczą. To z kolei pomaga w oddzielaniu obiektów od siebie i zapewnianiu spójności wewnątrz obiektów. Powszechnym sposobem myślenia o hermetyzacji jest to, że idziesz do restauracji – wysyłasz wiadomość do kelnera z tym, co chcesz, a kelner następnie deleguje gotowanie tego, o co prosisz, szefowi restauracji. Nie musisz wchodzić do kuchni restauracji i mówić szefowi kuchni, jak ugotować posiłek, a jeśli szef kuchni chce zmienić sposób, w jaki gotuje określone danie, może to zrobić bez Twojej wiedzy. Tak samo jest z przedmiotami; nie powinni dostać się do innego obiektu i mówić mu, jak ma wykonać swoją pracę. Brzmi to dość prosto, ale w praktyce bardzo łatwo jest naruszyć tę zasadę. Porozmawiamy o tym więcej, gdy dojdziemy do sekcji Prawa Demeter w dalszej części tego rozdziału. Z technicznego punktu widzenia proces oddzielania interfejsu od implementacji nazywa się hermetyzacją.