У овом упутству ћемо научити о узорку дизајна појединца и како га применити у Јави уз помоћ примера.
Синглетон је шаблон дизајна, а не карактеристика специфична за Јаву. Осигурава да се креира само једна инстанца класе.
Узорак дизајна је попут наше библиотеке кода која укључује разне технике кодирања које деле програмери широм света.
Јава Синглетон
Ево како можемо користити синглетоне у Јави.
- креирајте
private
конструктор који ограничава стварање објекта изван класе - створити
private
атрибут који се односи на синглетон објект. - створимо
public static
методу која нам омогућава да креирамо и приступимо објекту који смо креирали. Унутар методе створићемо услов који нас ограничава у стварању више објеката.
Ево примера.
class SingletonExample ( // private field that refers to the object private static SingletonExample singleObject; private SingletonExample() ( // constructor of the SingletonExample class ) public static SingletonExample getInstance() ( // write code that allows us to create only one object // access the object as per our need ) )
У горњем примеру,
private static SingletonExample singleObject
- референца на објекат класе.private SingletonExample()
- приватни конструктор који ограничава стварање објеката изван класе.public static SingletonExample getInstance()
- овај метод враћа референцу на једини објекат класе. Пошто је метода статична, може јој се приступити помоћу имена класе.
Коришћење класе Синглетон
Синглетонови се могу користити током рада са базама података. Могу се користити за стварање спремишта веза за приступ бази података, док се иста веза поново користи за све клијенте. На пример,
class Database ( private static Database dbObject; private Database() ( ) public static Database getInstance() ( // create object if it's not already created if(dbObject == null) ( dbObject = new Database(); ) // returns the singleton object return dbObject; ) public void getConnection() ( System.out.println("You are now connected to the database."); ) ) class Main ( public static void main(String() args) ( Database db1; // refers to the only object of Database db1= Database.getInstance(); db1.getConnection(); ) )
Када покренемо програм, излаз ће бити:
Сада сте повезани са базом података.
У нашем горенаведеном примеру,
- Створили смо базу података синглетон класе.
- ДбОбјецт је поље типа класе. Ово ће се односити на објекат класе Датабасе.
- Приватни конструктор
Database()
спречава стварање објеката изван класе. - Метода статичког типа класе
getInstance()
враћа инстанцу класе у спољни свет. - У главној класи имамо променљиву типа класе дб1. Позивамо
getInstance()
помоћу дб1 да бисмо добили једини објекат базе података. - Методи
getConnection()
се може приступити само помоћу објекта базе података. - Будући да База података може имати само један објекат, сви клијенти могу приступити бази података путем једне везе.
Важно је напоменути да постоји само неколико сценарија (попут евидентирања) када појединачни тонови имају смисла. Чак и веза са базом података обично не би требало да буде једнострука.
Препоручујемо вам да у потпуности избегавате употребу појединачних слова ако нисте сигурни да ли да их користите или не. Сазнајте више: Шта је толико лоше у Синглетону?