Aktywne Wpisy

Treść przeznaczona dla osób powyżej 18 roku życia...

breakdown1 +12
Pytanie do bardziej doświadczonych akcjomariuszy na tagu. Czy giełda zawsze była taka patologiczna jak obecnie, czy dopiero w ostatnim czasie, gdy do gry weszły algorytmy, a każdy może inwestować z poziomu telefonu to taka się zrobiła?
Chodzi mi głównie o to, że obecnie giełda wytacza swój poziom jako różnice między pompami pokoleniowymi, gdzie giganci rosną po kilka procent dziennie przez kilka dni, a pomiędzy krachami, gdzie spadają po kilka procent dziennie każdego dnia
Chodzi mi głównie o to, że obecnie giełda wytacza swój poziom jako różnice między pompami pokoleniowymi, gdzie giganci rosną po kilka procent dziennie przez kilka dni, a pomiędzy krachami, gdzie spadają po kilka procent dziennie każdego dnia
źródło: image_picker_F5B75EA7-4E13-4F7C-B53D-5C5BEA07AB40-59758-0000418625A54510
Pobierz




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 ( ͡° ͜ʖ ͡°)