Aktywne Wpisy

marjanoos +226
Nie ma już ratunku dla osób z mentalnością "z-----------a". I bynajmniej nie chodzi o ciężką pracę, a o szybką jazdę.
Przypadek wypadku na skrzyżowaniu Grochowskiej i Zamienieckiej w Warszawie. Kierująca fordem wymusza pierwszeństwo, wytrąca z drogi toyotę. Ta dachuje i wjeżdża w grupę przechodniów, "wymiatając z planszy" kilkuletnie dziecko.
Odpowiedzialność za wypadek niepodważalnie ponosi osoba wymuszająca pierwszeństwo. Niemniej pojawiają się głosy, że spory procent uczestników ruchu przekracza tam nagminnie dozwoloną prędkość. W końcu dwa
Przypadek wypadku na skrzyżowaniu Grochowskiej i Zamienieckiej w Warszawie. Kierująca fordem wymusza pierwszeństwo, wytrąca z drogi toyotę. Ta dachuje i wjeżdża w grupę przechodniów, "wymiatając z planszy" kilkuletnie dziecko.
Odpowiedzialność za wypadek niepodważalnie ponosi osoba wymuszająca pierwszeństwo. Niemniej pojawiają się głosy, że spory procent uczestników ruchu przekracza tam nagminnie dozwoloną prędkość. W końcu dwa

32cm +25
Mirki
Czasem chcesz się pożalić, ale nie masz do kogo....
Żona chce kupić samochód. Padło na BMW X3, ja mówię lexusa (RX, UX, NX) ale nie bo brzydki lub stary, lub za duży przebieg, ok, gusta są różne...
Więc pada wybór kryteriów samochodu, rocznik powyżej 2017, automat, benzyna, przebieg poniżej 150k. Ustawiam wyszukiwanie, raz na jakiś czas coś się trafia, ale zawsze jakiś powód aby nie jechać, a to dziecko, a to samochód
Czasem chcesz się pożalić, ale nie masz do kogo....
Żona chce kupić samochód. Padło na BMW X3, ja mówię lexusa (RX, UX, NX) ale nie bo brzydki lub stary, lub za duży przebieg, ok, gusta są różne...
Więc pada wybór kryteriów samochodu, rocznik powyżej 2017, automat, benzyna, przebieg poniżej 150k. Ustawiam wyszukiwanie, raz na jakiś czas coś się trafia, ale zawsze jakiś powód aby nie jechać, a to dziecko, a to samochód





Mam singleton, w nim jedno pole, getter i setter. Powiedzmy, że
class Foo {
private Foo foo = null;
private Bar bar;
public void setBar(bar nBar)
{this.bar = nBar;}
public Bar getBar(){return this.bar;}
public static Foo getInstance(){
if (foo == null) foo = new Foo();
return foo;}
private Foo(){};
}
Jak najlepiej uzyskać to, aby klasa była "thread safe"? Starczy dodać volatile do "foo" i synchronized do metod?
Komentarz usunięty przez autora
A jak chcesz koniecznie Thread safe, to poczytaj Effective Java. Jest tam o tym wspomniane.
No i użyj na przykład AtomicReference.
A do przechowywania referencji pomiędzy wątkami masz AtomicReference.
No i dlaczego singleton? Nijak nie jest to potrzebne do tego, co chcesz osiągnąć.
Sprawdź, co oznacza S w SOLID.
I zwracaj kopię Bar.
@sorhu: W jaki sposób łamiemy tutaj SRP, jeśli nie wiadomo nawet, co ta klasa robi?
1. Klasa przechowuje instancję czegośtam.
2. Klasa zajmuje się logiką tworzenia własnych instancji.
Taki sam problem jak z każdym innym singletonem.
Takie przesadne trzymanie się założeń SOLID prowadzi do powstawania strasznie wymyślnych mechanizmów, w których jedynie autor nie gubi się po tygodniu (ale po miesiącu już tak).
I to nie jedyny problem z singletonem. Innym jest mockowanie i testowanie go. Nie na darmo uważany jest za antipattern.
No oczywiście, zawsze jakieś zastosowanie się znajdzie, ale w znacznej większości przypadków singleton jest zupełnie zbędny.
ale ogólnie to lepiej wystrzegaj się singletona, bo zuo ( ͡° ͜ʖ ͡°)