Pytanie jest stare - jaki jest właściwy projekt do obsługi konfiguracji pliku konfiguracyjnego systemu w naszym systemie? Mam określiła następujące wymagania:Wzorcowy wzór konfiguracji w całym systemie Java
- powinien być w stanie przeładować na żywo i mają zmiany odebrał natychmiast bez przesunięcia
- Dla aplikacji, które opierają się na tym samym, na przykład SQL lub memcached mandatów, powinny być możliwość wprowadzenia zmian w odosobnionym miejscu i wdrożyć za jednym zamachem, nawet jeśli aplikacje są na oddzielnych maszynach w różnych miejscach
- wielu procesach/komputerami pracującymi pod sam wniosek obsługiwane
a częściami tego projektu i jestem s truggling z:
- Czy każda główna klasa powinna przyjmować własną klasę "Config" jako parametr wejściowy do konstruktora? Czy istnieje fabryka odpowiedzialna za tworzenie instancji w odniesieniu do właściwej konfiguracji? A może każda klasa po prostu czyta z własnej konfiguracji i ładuje się nieco automatycznie?
- Jeśli klasa B wywodzi się z klasy A lub zawiera kompozycje wokół niej, czy ma sens dziedziczenie pliku konfiguracyjnego?
- Powiedz, że klasa A jest konstruowana przez M1 i M2 (M dla "głównego"), a M1 odpowiada za utworzenie instancji zasobu. Powiedzmy, że zasób opiera się na poświadczeniach MySQL, które spodziewam się być wspólne dla M1 i M2, czy istnieje sposób na uniknięcie kompromisu w kwestii złamania prawa własności i wstawienia konfiguracji A do v. Duplikowanie zasobu przez konfigurację M1 i M2?
Są to problemy z projektowaniem, z którymi mam do czynienia teraz i nie znam naprawdę wzorców projektowych i ram, które tutaj działają. Jestem w Javie, więc wszelkie biblioteki, które to rozwiązują, są bardzo mile widziane.
Wolałbym wstrzyknąć klasę, niż określić ją jako pojedynczą. Czy to sprawi, że testowanie będzie o wiele łatwiejsze? –
globalnie dla 4 aplikacji i 20 wewnętrznych bibliotek? – djechlin