Tùy thuộc vào đơn đăng ký của bạn. Như một đường cơ sở, thiết kế tốt của nó để sử dụng các biến tĩnh để giữ dữ liệu mà chương trình của bạn sẽ cần, thay vì các chuỗi mã hóa cứng và các số nguyên trên khắp nơi; Điều này có nghĩa là bất kỳ thay đổi nào (ví dụ: màu phông chữ ứng dụng rộng) trong tương lai sẽ chỉ yêu cầu một thay đổi duy nhất, sau đó là chu kỳ biên dịch và hàng hóa của bạn để đi. Tuy nhiên, nếu các cài đặt này có thể được cấu hình bởi người dùng, thì chúng không thể được mã hóa cứng, nhưng thay vào đó cần được đọc từ nguồn bên ngoài và nơi bạn thực hiện, là vấn đề về thiết kế, độ phức tạp và bảo mật.
Tệp văn bản thuần túy là tốt cho một ứng dụng nhỏ, nơi bảo mật là lỏng lẻo và mọi thứ đều là văn bản thuần túy. Trình chỉnh sửa SublimeText và trình soạn thảo notepad ++ làm điều này cho các thiết lập chủ đề của chúng và nó hoạt động tốt. (Tôi tin rằng đó là văn bản thuần túy, có lẽ họ đã chuyển sang XML ngay bây giờ)
Một tùy chọn tốt hơn là XML, vì nó được cấu trúc, dễ đọc/phân tích/ghi. Rất nhiều dự án sử dụng tùy chọn này. Một điều cần chú ý là các tệp bị hỏng, trong khi đọc/ghi vào chúng, nếu người dùng đóng chương trình hoặc JVM thoát ngẫu nhiên vì bất kỳ lý do gì. Bạn có thể muốn xem xét những thứ như bộ đệm. Và cũng đối phó với FileNotFoundExceptions, nếu tập tin text/xml bị thiếu.
Tùy chọn khác là tệp cơ sở dữ liệu của một số loại, an toàn hơn một chút, bạn có thể thêm mã hóa cấp ứng dụng và bạn có vô số tùy chọn. Các chương trình lớn đã sử dụng một chương trình phụ trợ DB, như MySQL, đã có cơ sở dữ liệu để bàn tay, do đó hãy tạo một bảng mới và lưu trữ cấu hình đó.Các ứng dụng nhỏ có thể xem xét SQLite như một tùy chọn.
Nếu hóa ra bạn cần sửa đổi các cài đặt này, bạn sẽ cần phải thực hiện một bản phát hành mới thay vì chỉnh sửa các thông số này trong xml và khởi động lại hệ thống. Cẩn tắc vô ưu. –
Giống như nhiều thứ, đây là sự cân bằng. Nếu bạn nghĩ rằng những tính chất này sẽ không thay đổi trong tương lai và nỗ lực đưa chúng vào một thuộc tính (đọc, tiêm chúng) là không đáng kể, hãy đặt chúng trong một lớp học. Một câu hỏi đặt ra cho chính bạn là: khi một hằng số trở thành cấu hình bên ngoài? – Augusto
Tôi thường sử dụng các tệp thuộc tính. Và khi định nghĩa thuộc tính không được tìm thấy trong tệp thuộc tính, tôi sử dụng giá trị mặc định được mã hóa cứng làm dự phòng. – h3nrik