2013-04-23 31 views
6

Tôi cần phải cấu trúc lại dự án với hai mô hình dữ liệu thành hai dự án riêng biệt. Cả hai dự án đều sử dụng cùng một ngoại lệ. Tôi có nên tạo dự án thứ 3 chỉ cho những ngoại lệ này không? Nhân bản âm thanh như một không-đi.Trường hợp ngoại lệ nên được đặt được sử dụng bởi nhiều dự án?

+6

Tôi sẽ giữ chúng trong một bình riêng biệt và kết hợp bình với hai dự án sau khi xây dựng. –

Trả lời

7

Có, bạn nên tạo nó trên một dự án riêng biệt, và sử dụng nó như là một sự phụ thuộc vào những người khác. Nó không phải là không phổ biến để xem một dự án/jar mà chỉ có các ngoại lệ được sử dụng trong các mô-đun mà bạn làm việc với. Đó là một cách tốt để giữ mọi thứ có tổ chức IMHO.

+0

Không đồng ý, chỉ có ngoại lệ chung giữa hai dự án âm thanh có mùi với tôi. Tôi tin rằng họ chỉ giống nhau trong tên lớp của họ và không có gì nhiều hơn nữa! –

+0

Tôi tin OP có nghĩa là 2 mô-đun trong cùng một dự án, không thực sự là 2 dự án độc lập. Nếu đó là trường hợp giải pháp này cũng như câu hỏi này không có ý nghĩa. Ngay cả tên gói cũng là lạ. –

1

IMHO, như @harsha được đề cập trong nhận xét hiện tại, giải pháp dễ nhất là đặt mã được chia sẻ vào thư viện hoặc .jar tệp và tệp .jar vào thư viện dự án của bạn.

Bây giờ bạn có một api có giá trị có thể được duy trì dễ dàng cho mỗi bản dựng với phiên bản của bạn.

1

Một dự án riêng biệt là sự phụ thuộc được chia sẻ của hai dự án còn lại có lẽ là tốt nhất. Nhân bản các đối tượng sẽ làm cho mọi thứ trở nên khó khăn nếu hai mô hình dữ liệu được sử dụng cùng nhau, mà bạn sẽ phải giải quyết thông qua ví dụ: tên gói khác nhau và điều này sẽ tạo ra những cơn đau đầu bảo trì. Dự án được chia sẻ có thể là một kho lưu trữ tốt cho mã được chia sẻ trong tương lai ngoài chỉ ngoại lệ của bạn.

1

Có ngoại lệ chung nào không? Nghe kỳ lạ nhỉ.

Có bất kỳ sự phụ thuộc nào giữa các dự án này không? Là một trong những khách hàng của người khác?

Tôi tin rằng sẽ có một số giao diện chung, một số tuyên bố những ngoại lệ này trong chữ ký của phương thức của chúng. Một số được thực hiện trong một trong các dự án của bạn và được gọi trong dự án khác.

Nếu hoàn toàn không có điều gì, có vẻ như các trường hợp ngoại lệ chung của bạn chỉ là chung với tên của chúng! Họ không thực sự là cùng một lớp, họ chỉ có cùng tên, và bởi vì nhiều trường hợp ngoại lệ do người dùng định nghĩa chỉ là có các hàm tạo gọi là các hàm tạo super, chúng dường như giống nhau.

Nếu đó là trường hợp của bạn, tôi sẽ không bận tâm bản thân mình để trích xuất các lớp học, và tôi sẽ giữ các bản sao, bởi vì không có gì đạt được bởi việc tái cấu trúc.

+0

Chúng là hai mô hình cho hai (thực tế hơn) các hệ thống khác nhau được sử dụng để nhập dữ liệu vào một hệ thống đích. Có nhiều điểm chung mà tôi đã đưa vào một dự án util. Nhưng tôi không nghĩ rằng ngoại lệ nên đến đó, vì một hệ thống có thể không cần utils nhưng ngoại lệ. – lilalinux

Các vấn đề liên quan