Mam kilka dużych (więcej niż 3 pola) obiektów, które mogą i powinny być niezmienne. Za każdym razem, gdy napotykam taki przypadek, zwykle tworzę abominacje konstruktorów z długimi listami parametrów.
Wydaje się, że nie jest w porządku, jest trudny w użyciu, a czytelność cierpi.
Jeszcze gorzej jest, jeśli pola są pewnego rodzaju zbiorami, takimi jak listy. Prosty addSibling(S s)
bardzo ułatwiłby tworzenie obiektu, ale czyni obiekt zmiennym.
Czego używacie w takich przypadkach?
Jestem na Scali i Javie, ale myślę, że problem leży po stronie języka, o ile jest zorientowany obiektowo.
Rozwiązania, które przychodzą mi do głowy:
- „Obrzydliwości konstruktorów z długimi listami parametrów”
- Wzorzec konstruktora