To zależy od aplikacji. Podstawową zaletą jest to, że używa on statycznych zmiennych do przechowywania danych, których potrzebuje program, zamiast ciągów kodowania i liczb całkowitych w całym miejscu; Oznacza to, że wszelkie zmiany (np. Kolor czcionki w aplikacji) w przyszłości będą wymagać tylko jednej zmiany, a następnie cyklu kompilacji i Twojego dobra.
Jednakże, jeśli te ustawienia można konfigurować przez użytkownika, nie można ich zakodować na sztywno, ale zamiast tego należy je odczytać z zewnętrznego źródła, a gdzie to zrobi, jest kwestią projektu, złożoności i bezpieczeństwa.
Zwykłe pliki tekstowe są dobre dla małej aplikacji, gdzie bezpieczeństwo jest luźne, a rzeczy są zwykłym tekstem. Edytor SublimeText i edytor notepad ++ robią to dla swoich ustawień tematycznych i działa dobrze. (Wierzę, że był to zwykły tekst, być może przeniósł się teraz do XML).
Lepszą opcją jest XML, ponieważ ma strukturę, łatwiej jest czytać/parsować/pisać. Wiele projektów korzysta z tego jako opcja. Jedną z rzeczy, na które należy zwrócić uwagę, są uszkodzone pliki, podczas ich odczytu/zapisu, jeśli użytkownik zamyka program lub wirtualna maszyna wirtualna z dowolnego powodu wychodzi z niego losowo. Możesz spojrzeć na takie rzeczy jak bufory. A także radzić sobie z FileNotFoundExceptions, jeśli brakuje pliku text/xml.
Inną opcją jest pewien rodzaj pliku bazy danych, nieco bardziej bezpieczny, można dodać szyfrowanie na poziomie aplikacji i masz wiele opcji. Duże programy, które już korzystają z backendu DB, jak MySQL, mają już bazę danych do przekazania, więc utwórz nową tabelę i zapisz tam konfigurację.Małe aplikacje mogą traktować SQLite jako opcję.
Jeśli kiedykolwiek się okaże, że musisz zmodyfikować te ustawienia, musisz wykonać nowe wydanie zamiast edytować te parametry w xml i zrestartować system. Lepiej dmuchać na zimne. –
Podobnie jak wiele rzeczy jest to równowaga. Jeśli uważasz, że te właściwości nie zmienią się w przyszłości i wysiłek włożenia ich we właściwości (czytanie, wstrzykiwanie ich) jest więcej niż banalne, umieść je w klasie. Jedno pytanie do zadawania sobie, to: kiedy stała staje się zewnętrzną konfiguracją? – Augusto
Zwykle używam plików właściwości. A gdy definicja właściwości nie zostanie znaleziona w pliku właściwości, używam zakodowanej wartości domyślnej jako zastępczej. – h3nrik