Single în java
Loner - acesta generează un model care să garanteze existența unui singur obiect dintr-o anumită clasă, și, de asemenea, vă permite să ajungă la obiectul din orice program.
Loner are aceleași avantaje și dezavantaje ca variabile globale. Este incredibil de convenabil de a utiliza, dar încalcă modularitatea codului.
Nu poți alege doar în sus și de a folosi o clasă în funcție de single-uri și în celălalt program. Va trebui să se întreacă în prezența unică și acolo. Cel mai adesea, această problemă se manifestă atunci când scrieți teste unitare.
Mai multe informații despre singur
Caracteristici model în Java
Aplicabilitate: Multi programatori cred antipattern Singur, deci este mai puțin și mai puțin pentru a fi găsit în Java-cod.
Cu toate acestea, în monoterapie au fost utilizate în standardul bibliotecă Java:
Simptome model cerere: Alone poate fi determinată printr-o metodă statică crea care returnează același obiect.
Exemplu: Single Naive (un flux)
Singur stângace de a pune în aplicare foarte simplu - doar ascunde constructor și oferă o statică a crea metode.
OutputDemoSingleThread.txt: Rezultatele
Variația. Naiv Single (mai multe fire)
Aceeași clasă se comportă în mod corespunzător într-un mediu multithread. fluxuri multiple pot provoca simultan o metodă de producere singur și de a crea mai multe instanțe ale unui obiect.
Singleton.java: Single
DemoMultiThread.java: Cod client
OutputDemoMultiThread.txt: Rezultatele
Variația. Correct Single (filet-safe)
Pentru a rezolva problema, este necesar pentru a sincroniza fire pentru a crea un singur obiect.