OK, więc mam nadzieję, że jest to subiektywne pytanie dla programistów, ale proszę bardzo. Nieustannie poszerzam swoją znajomość języków i praktyk inżynierii oprogramowania ... i natknąłem się na coś, co nie ma dla mnie żadnego sensu.
W C ++ deklaracje klas zawierają private:
metody i parametry w pliku nagłówkowym, który teoretycznie przekazuje się użytkownikowi, jeśli zostanie on lib.
W Objective-C @interface
robimy prawie to samo, zmuszając cię do listy prywatnych członków (przynajmniej istnieje sposób na uzyskanie prywatnych metod w pliku implementacji).
Z tego, co mogę powiedzieć, Java i C # pozwalają na zapewnienie interfejsu / protokołu, który może zadeklarować wszystkie publicznie dostępne właściwości / metody i daje koderowi możliwość ukrycia wszystkich szczegółów implementacji w pliku implementacji.
Czemu? Enkapsulacja jest jedną z głównych zasad OOP, dlaczego w C ++ i Obj-C brakuje tej podstawowej umiejętności? Czy istnieje jakiś sprawdzony sposób obejścia Obj-C lub C ++, który ukrywa całą implementację?
Dzięki,