Единична в Ява

Индивидуалист - тя генерира модел, който да гарантира наличието на само един обект на определен клас, а също така ви позволява да се достигне целта от всяка програма.

Индивидуалист има същите предимства и недостатъци като глобалните променливи. Това е невероятно удобен за използване, но той нарушава модулността на кода си.

Не може просто да се вдигне и да се използва в зависимост от класа на сингъл в друга програма. Тя ще трябва да се подражава на присъствието на единично и там. Най-често този проблем се проявява, когато пишете единица тестове.

Повече информация за сам

Характеристики на модела в Java

Приложимост: Много програмисти смятат antipattern Alone, така че е по-малко и по-малко да се намерят в Java-код.

Въпреки това, само са били използвани в стандартната Java библиотека:

Симптоми Модел Приложение: Сами може да се определят чрез статично създават метод, който връща един и същ обект.

Пример: Единична Наивизъм (един поток)

Alone тромава да приложат много лесно - само скрие строителя и да осигури статичен създадат методи.

OutputDemoSingleThread.txt: Резултатите от

Вариация. Наивни Единична (множество нишки)

В същия клас се държи правилно в многонишкова среда. Множество потоци могат едновременно да предизвика метод за получаване самостоятелно и създават множество копия на един обект.

Singleton.java: Single

DemoMultiThread.java: Клиентски код

OutputDemoMultiThread.txt: Резултатите от

Вариация. Правилно Единична (резба-безопасно)

За да реши проблема, е необходимо да се синхронизира нишки, за да се създаде един обект.

Singleton.java: Single

DemoMultiThread.java: Клиентски код

OutputDemoMultiThread.txt: Резултатите от