2014-12-26 11 views
7

Khi sử dụng hiệu quả và bộ nhớ, tốt hơn là có một bình lớn với một lớp/gói cho mỗi tính năng khi cần thiết? Hay thay vào đó là tốt hơn để tách nó ra thành các lọ nhỏ dễ quản lý hơn?Java, nhiều lọ hoặc một lớn?

phép nói rằng tôi có một dự án lớn với 20-30 gói tất cả không liên quan đến nhau:

com.example.test 
    - class 1 
    - class 2 
    - class 3 
    - another.package 
     - class 1 
     - class 2 
     - class 3 
    - another.package 
     - class 1 
     - class 2 
     - class 3 
    - another.package 
     - class 1 
     - class 2 
     - class 3 

có nó thay vì hiệu quả hơn để chia từng gói vào jar riêng của mình? Và có nhiều lọ nhỏ hơn, nhẹ hơn? Im không chắc chắn nếu điều này ngay cả vấn đề, tuy nhiên tôi tò mò vì nó sẽ làm cho phát triển hơn nữa dễ dàng hơn nếu tôi chia tất cả mọi thứ lên một chút. (miễn là không có bất lợi về hiệu suất)

+4

Một trong những lý do bạn có thể tách mã thành các lọ riêng biệt là vì bạn muốn cung cấp lại loạt thư viện có thể sử dụng lại – MadProgrammer

+2

^+ và để tiết kiệm thời gian xây dựng nếu bạn có thể sử dụng phương pháp gia tăng –

+5

Tôi không nghĩ là có bất kỳ mối quan tâm nào về hiệu năng, mà được cải thiện bằng cách tách ứng dụng – Dici

Trả lời

11

Nếu các gói không có liên quan, thì chúng không được trong cùng một khoảng thời gian jar.

Bằng cách chia nhỏ bình, người dùng có thể chọn gói nào họ cần trong quá trình triển khai, và chỉ bao gồm những gói nào khác.

Bạn muốn triển khai mã tối thiểu có thể. Bất cứ điều gì thêm là một vấn đề tiềm ẩn, lỗi, lỗ hổng bảo mật. Những thứ không cần thiết cũng có thể làm chậm trình tải lớp, mặc dù đó là một mối quan tâm nhỏ bé so với những người khác tôi đã đề cập trước đó.

Nếu một số trong số chúng, hoặc tất cả chúng, luôn được sử dụng cùng nhau, thì vì lý do thực tế, bạn có thể gộp chúng lại với nhau.

+1

'Bất kỳ thứ gì thêm là một vấn đề tiềm ẩn, lỗi, lỗ hổng bảo mật'. Tôi nhận thấy điều này đang dần dần trở thành vấn đề hơn vì mỗi lần triển khai có thay đổi. Cảm ơn bạn vì câu trả lời rõ ràng :) – ThatGuy343

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