OK, donc j'espère que c'est une question assez subjective pour les programmeurs, mais voilà. J'élargis continuellement ma connaissance des langages et des pratiques de génie logiciel ... et j'ai rencontré quelque chose qui n'a absolument aucun sens pour moi.
En C ++, les déclarations de classe incluent des private:
méthodes et des paramètres dans le fichier d'en-tête, qui, théoriquement, est ce que vous transmettez à l'utilisateur si vous en faites une lib.
Dans Objective-C, les @interface
s font à peu près la même chose, vous forçant à répertorier vos membres privés (au moins, il existe un moyen d'obtenir des méthodes privées dans le fichier d'implémentation).
D'après ce que je peux dire, Java et C # vous permettent de fournir une interface / un protocole qui peut déclarer toutes les propriétés / méthodes accessibles au public et donne au codeur la possibilité de masquer tous les détails de l'implémentation dans le fichier d'implémentation.
Pourquoi? L'encapsulation est l'un des principaux principes de la POO, pourquoi le C ++ et l'Obj-C n'ont-ils pas cette capacité de base? Existe-t-il une sorte de solution de contournement des meilleures pratiques pour Obj-C ou C ++ qui masque toute l' implémentation?
Merci,