Taki operator jest w Groovym (alternatywny język działający na JVM).
Jest tam operator ?. który działa dokładnie jak piszesz. Może powinieneś
zacząć pisać w Groovym?
Lepszą alternatywą może być użycie wzorca NullObject: zamiast null-i
zwracasz specjalne implementacje które nic nie robią. Ogólnie pozwoli to
zaoszczędzić wiele if-ów:
if(coś == null) {coś.zróbcoś();} else {...}
stanie się po prostu:
coś.zróbcoś()
Ogólnie tasiemce w stylu:
someHouse.mainEntry.realyRealyGoodLock.lockMode
mogą też świadczyć o braku enkapsulacji w klasach. Taki kod będzie
toporny do zmian. Zobacz czy czegoś tam się nie da zaenkapsulować.
Lasu pisze:
To tylko kwestia implementacji operatora.
On 8 Gru, 16:50, Irek Matysiewicz <iir...@gmail.com> wrote:
> To już kwestia synchronizacji. Jak robisz:
> cośtam1.cośtam2.cośtam3.cośtam4, to w aplikacji wielowątkowej też
> wypadałoby wszystkie cośtamy które mogą się w międzyczasie zmienić wziąć
> w 'synchronized' przed dostępem do ich wnętrza. Zapewne operator ?. tego
> synchronized nie daje i wszystko lipa.
Są ogólnie dwie metody zaimplementowanie takowego, dla jednego to nie
jest problemem dla drugiego jest.
Jest dokladnie odwrotnie.
Wewnętrzna struktura jest jak fraktal;)
Obiekty agregują inne obiekty...
zamiast
this.Ręka(l/r).?.Palec()
lepiej analogicznie jak wyzej:
this.reka.złap(coś) - ręko, nie wazne jak to złapiesz, jezeli masz
obciete paluchy to zglos veto
odwrotnie tez w tym sensie, ze na samej gorze daje sie zazyczaj
interfejs w postaci procedury - bo to latwiej zrozumiec i przyda sie
biznesowi do SOA ;P
//=============
z mojej strony pass
Obiecalem spasowac, ale jeszcze sprobuje...
W poczuciu obowiązku popelnilem nawet na szybko posta
http://art-of-software.blogspot.com/2008/12/flaczki-kod-obiektowy-zawsze-smaczny-i.html
1. Agregacja i delegacja to nie god-object - zagregowane obiekty z
dobrze wyspecyfikowaną i spojną odpowiedzialnoscią sa reuzywalne. W
dobrym projekcie obiekt stojacy wyzej w agregacie nie ma wszechmocnej
odpowiedzialnosci bo jego kontekst jest z wyzszego poziomu abstrakcji.
2. XML to akurat nie jest sztandarowy przyklad OO a problemow
proceduralnych. Masz paczke danych (ktora z definicji i idei XMLa nie
moze miec odpowiedzialnosci) i ją obrabiasz jakąś obrabiarką. Trudno
czasem w zyciu trzeba poobrabiac jakies dane - taka praca, ale to nie
całe uniwersum programowania.