OK, vì vậy hy vọng đây là một câu hỏi đủ chủ quan cho các lập trình viên, nhưng rồi đây. Tôi liên tục mở rộng kiến thức về ngôn ngữ và thực hành kỹ thuật phần mềm ... và tôi đã gặp phải điều gì đó vô nghĩa với tôi.
Trong C ++, khai báo lớp bao gồm private:
các phương thức và tham số trong tệp tiêu đề, theo lý thuyết, là những gì bạn chuyển cho người dùng để bao gồm nếu bạn biến chúng thành lib.
Trong Objective-C, @interface
chúng thực hiện khá nhiều thứ tương tự, buộc bạn phải liệt kê các thành viên riêng của mình (ít nhất, có một cách để có được các phương thức riêng tư trong tệp thực hiện).
Từ những gì tôi có thể nói, Java và C # cho phép bạn cung cấp giao diện / giao thức có thể khai báo tất cả các thuộc tính / phương thức có thể truy cập công khai và cung cấp cho bộ mã hóa khả năng ẩn tất cả các chi tiết triển khai trong tệp thực hiện.
Tại sao? Đóng gói là một trong những nguyên tắc chính của OOP, tại sao C ++ và Obj-C thiếu khả năng cơ bản này? Có một số cách thực hành tốt nhất xung quanh Obj-C hoặc C ++ che giấu tất cả việc thực hiện không?
Cảm ơn,