Tôi có một lớp mô hình (MVC pattern) mà tôi đang sử dụng trong hai dự án Eclipse.truy cập các trường riêng tư trong các lớp được chia sẻ trên các dự án Eclipse
Một dự án, hãy gọi nó là Producer
, đang thu thập dữ liệu từ luồng và lưu trữ dữ liệu đó vào cơ sở dữ liệu. Lớp mô hình được đề cập, giả sử ObjectModel
, được sử dụng để deserialize luồng cho thao tác trước khi tuần tự hóa và lưu trữ trong db.
Một dự án khác, hãy gọi nó là Consumer
, đang lấy dữ liệu được lưu trữ trong cơ sở dữ liệu và trực quan hóa nó trên màn hình. Nó sử dụng cùng một lớp mô hình để deserialize dữ liệu được lưu trữ để sử dụng trong ứng dụng trực quan hóa.
Tôi dự định đặt ObjectModel
vào một dự án Eclipse để chia sẻ nguồn của mình trên các dự án Producer
và Consumer
. Tuy nhiên, mỗi ứng dụng có các lớp hiện tại trong cùng một gói tận dụng lợi thế của trình sửa đổi truy cập gói riêng để nhận và đặt các trường trong ObjectModel
.
Có cách nào tôi có thể chia sẻ nguồn trên nhiều dự án Eclipse và vẫn duy trì quyền truy cập gói riêng tư với nguồn được chia sẻ không?
CẬP NHẬT: Tôi gặp sự cố khi nhận mã được chia sẻ trên các dự án Eclipse, đó là lý do tôi không thử trước khi đăng. Cuối cùng, có phần đó hoạt động và viết nó như một câu trả lời khác here.
bạn có thể giải thích tại sao bạn muốn 'vẫn duy trì quyền truy cập gói riêng tư với nguồn được chia sẻ không? '? – Vikdor
'Nhà sản xuất' có một lớp,' ObjectModelFactory', tạo ra các cá thể 'ObjectModel' đóng gói dữ liệu từ nhiều luồng riêng biệt. 'Consumer' có một lớp,' ObjectModelMerger', kết hợp các cập nhật trực tiếp vào trong 'ObjectModel' của deserialized. Thật thú vị hơn cho mỗi lớp để truy cập trực tiếp các trường 'ObjectModel' hơn là đi qua các trình truy cập, đặc biệt vì không cần các bộ định cư trong bất kỳ phần nào của chương trình ngoại trừ' ObjectModelFactory' và 'ObjectModelMerger' - tôi muốn giới hạn truy cập vào trường 'ObjectModel'. – ericsoco