Bien, espero que esta sea una pregunta suficientemente subjetiva para los programadores, pero aquí va. Continuamente estoy ampliando mi conocimiento de idiomas y prácticas de ingeniería de software ... y me he encontrado con algo que no tiene ningún sentido para mí.
En C ++, las declaraciones de clase incluyen private:
métodos y parámetros en el archivo de encabezado, que, en teoría, es lo que le pasa al usuario para que lo incluya si lo convierte en una biblioteca.
En Objective-C, @interface
hacemos prácticamente lo mismo, obligándote a enumerar tus miembros privados (al menos, hay una manera de obtener métodos privados en el archivo de implementación).
Por lo que puedo decir, Java y C # le permiten proporcionar una interfaz / protocolo que puede declarar todas las propiedades / métodos de acceso público y le da al codificador la capacidad de ocultar todos los detalles de implementación en el archivo de implementación.
¿Por qué? La encapsulación es uno de los principios principales de OOP, ¿por qué C ++ y Obj-C carecen de esta capacidad básica? ¿Existe algún tipo de mejor práctica para Obj-C o C ++ que oculte toda la implementación?
Gracias,