Wpis z mikrobloga

#programowanie #java #spring

Spring jednak utrudnia pisanie poprawnego kodu obiektowego. Człowiek chce napisać normalną klasę, która posiada dane i bazujące na nich zachowania, ale nie da się w prosty sposób.
Jeśli chcemy dodać dane instancji, to najłatwiej to zrobić przez new, ale wtedy obiekt nie będzie zarządzany przez Springa i nie da się wstrzyknąć do niego zależności.
Jedyne rozwiązanie, jakie widzę, to wstrzyknąć pustego beana ze scope "prototype", a później przez setery poustawiać mu wszystkie dane, ale to bardzo zaśmieca kod i uniemożliwia tworzenie niemutowalnych klas, których jestem zwolennikiem.
  • 45
  • Odpowiedz
@big-pink: przecież napisałem "obejście", poza tym kluczowy jest fragment z AutowiredAnnotationBeanPostProcessor i polem inicjalizacyjnym reszta jest dla dobra przykładu :P poza tym co jest złego w getterach ?
  • Odpowiedz
@big-pink: czepianie się o nazwę metody w klasie która w zasadzie równie dobrze mogłaby nazywać się Foo i której pola nazywają się "test" to wyższe stadium puryzmu ( ͡° ͜ʖ ͡°)

poza tym frameworki i biblioteki bardzo często wymuszają tą konwencję nazewniczą więc trzeba się pogodzić z tym że nie ucieknie się przed tym często, no i nie wszystkie klasy robią logikę więc po cholerę fantazjować z
  • Odpowiedz