Jeśli dodasz nowe opcje konfiguracji do programu, może on często wywoływać mnóstwo efektów falowania, jeśli chodzi o uzyskanie opcji tam, gdzie trzeba działać. Istnieją trzy podstawowe sposoby radzenia sobie z tym, o których jestem świadomy:
Przekaż wszystkie ustawienia konfiguracji do części programu, które potrzebują ich jawnie jako prymitywów. Jest to najbardziej wyraźny sposób, który najbardziej oddziela rzeczy. Minusem jest to, że jest to zarówno pełne, jak i kruche.
Ustaw najczęściej używane ustawienia konfiguracji na globalne / statyczne. Jest to najprostszy sposób, ale wprowadza działanie na odległość, utrudnia testowanie i zakłada, że konfiguracja naprawdę jest globalna (że w danym momencie chcesz mieć tylko jedną konfigurację).
Utwórz klasę / strukturę konfiguracji, która zawiera wszystkie opcje konfiguracji dla całego programu lub każdego ważnego problemu w programie, a następnie przekaż to jawnie. Jest to mniej wyraźne niż (1), ale bardziej wyraźne niż (2). Jeśli chcesz zmienić ustawienie tylko dla jednego wywołania funkcji, możesz sklonować obiekt config i zmienić tę jedną wartość. Jest to przydatne zarówno w testowaniu, jak iw praktyce. Jednak nadal możesz potencjalnie przekazać tony informacji do funkcji, której nie potrzebuje, a zmiana wartości w klasie config / struct może nadal powodować działania na odległość.
Czy rozważyć (3) wzór lub anty-wzór? Jeśli to jest anty-wzór, co zamiast tego robisz?