Tôi đang tạo một thư viện Java, như một sản phẩm cuối cùng có ý định phân phối .jar này cho các nhà phát triển.Phạm vi và thư viện Java Class
Tôi đang "dịch" thư viện của tôi từ Objective-C nơi tôi kiểm soát các tệp tiêu đề của lớp nào có sẵn cho nhà phát triển. Nói cách khác, tôi chỉ tiếp xúc với nhà phát triển một vài lớp mà họ có thể xử lý.
Trong thư viện Java của tôi, tôi đang sử dụng các gói và gói của tôi đã phát triển khá lớn. Vì vậy, tôi quyết định tách thành các gói khác nhau các mô hình và bộ điều khiển của tôi. Nhưng bây giờ các mô hình tôi muốn giữ riêng tư tôi cần phải đánh dấu là công khai để sử dụng từ gói chính.
Câu hỏi của tôi là điều này đi ngược lại những gì tôi đã làm trong Mục tiêu-C?
Ví dụ: Tôi có lớp Sự kiện thực sự chỉ được sử dụng nội bộ và tôi không muốn người dùng biết về điều đó hoặc nghĩ về điều đó. Tôi có một lớp TimedEvent, mà người dùng có thể nhận được một thể hiện của một quản lý.
Trong Mục tiêu-C, tôi chỉ cần loại trừ lớp Sự kiện khỏi phạm vi công cộng của thư viện, cho phép TimedEvent.
Nếu tôi làm cho mọi thứ gọn gàng hơn trong thư viện của mình thì có vẻ như các gói không phải là cách. Kể từ bây giờ, bộ điều khiển chính của tôi nằm trong gói chính và tất cả các mô hình đều nằm trong một gói khác - buộc phải có phạm vi công khai.
Ý kiến?
Nice liên lạc về việc thực hiện bên trong giao diện. Đó có phải là một tính năng mới không? –
Không, nó hoạt động vì Java hỗ trợ các lớp bên trong (1.2, tôi nghĩ) nhưng nó bổ sung thêm rất nhiều mã đĩa nồi hơi. –
Rất nhiều sách giáo khoa có lỗi này. "Giao diện: hằng số và khai báo phương thức" –