OK, quindi spero che questa sia una domanda abbastanza soggettiva per i programmatori, ma qui va. Allargo continuamente la mia conoscenza delle lingue e delle pratiche di ingegneria del software ... e mi sono imbattuto in qualcosa che per me non ha assolutamente senso.
In C ++, le dichiarazioni di classe includono private:
metodi e parametri nel file di intestazione, che, in teoria, è ciò che passi all'utente da includere se le rendi lib.
In Objective-C, @interface
facciamo praticamente la stessa cosa, costringendoti a elencare i tuoi membri privati (almeno, c'è un modo per ottenere metodi privati nel file di implementazione).
Da quello che posso dire, Java e C # consentono di fornire un'interfaccia / protocollo che può dichiarare tutte le proprietà / i metodi accessibili al pubblico e offre al programmatore la possibilità di nascondere tutti i dettagli dell'implementazione nel file di implementazione.
Perché? L'incapsulamento è uno dei principi principali di OOP, perché C ++ e Obj-C mancano di questa capacità di base? Esiste una sorta di soluzione ottimale per Obj-C o C ++ che nasconde tutta l' implementazione?
Grazie,