Гаразд, тож сподіваємось, що це досить суб'єктивне питання для програмістів, але тут ідеться. Я постійно розширюю свої знання з мов та практики інженерії програмного забезпечення ... і натрапив на щось, що для мене просто не має сенсу.
В C ++ класові декларації включають private:
методи та параметри у файлі заголовка, який, теоретично, це те, що ви передаєте користувачеві для включення, якщо ви зробите його ліб.
У Objective-C @interface
зробіть майже те саме, що змушує вас перелічити своїх приватних членів (принаймні, у файлі реалізації є спосіб отримати приватні методи).
З того, що я можу сказати, Java та C # дозволяють надати інтерфейс / протокол, який може оголосити всі загальнодоступні властивості / методи та надає кодеру можливість приховати всі деталі реалізації у файлі реалізації.
Чому? Інкапсуляція - один з головних принципів ООП, чому C ++ та Obj-C не мають цієї основної здатності? Чи існує якась найкраща практика для Obj-C або C ++, яка приховує всю реалізацію?
Дякую,