Darslik haqida
Download 1.17 Mb.
|
java tutorial (1)
Singletonsni amalga oshirish
misol Eng oson amalga oshirish shaxsiy konstruktor va uning natijasini saqlash uchun maydondan va getInstance() kabi nomga ega statik aksessuar usulidan iborat. Shaxsiy maydonni statik ishga tushirish bloki ichidan yoki oddiyroq qilib aytganda, initsializator yordamida tayinlash mumkin. getInstance( ) usuli (ommaga ochiq bo'lishi kerak) keyin oddiygina bu misolni qaytaradi - // Fayl nomi: Singleton.java umumiy sinf Singleton { xususiy statik Singleton singleton = yangi Singleton( ); /* Shaxsiy Konstruktor boshqasini oldini oladi * instantsiyadan sinf. */ xususiy Singleton(){} /* Statik “nasol” usuli */ umumiy statik Singleton getInstance( ) { qaytish singleton; } /* Singletonlik bilan himoyalangan boshqa usullar */ himoyalangan statik bekor demoMethod() { System.out.println("singl uchun demoMethod"); } } Mana asosiy dastur fayli, bu erda biz singleton ob'ektini yaratamiz: // Fayl nomi: SingletonDemo.java umumiy sinf SingletonDemo { umumiy statik void main(String[] args) { Singleton tmp = Singleton.getInstance( ); tmp.demoMethod( ); } } 16
Singleton uchun demoMethod misolQuyidagi amalga oshirish klassik Singleton dizayn namunasini ko'rsatadi: umumiy sinf ClassicSingleton { xususiy statik ClassicSingleton instance = null; xususiy ClassicSingleton() { // Faqat instantsiyani yengish uchun mavjud. } umumiy statik ClassicSingleton getInstance() { if(misol == null) { misol = new ClassicSingleton(); } qaytarish misoli; } } ClassicSingleton klassi yolg'iz singleton misoliga statik havolani saqlaydi va bu havolani statik getInstance() usulidan qaytaradi. Bu erda ClassicSingleton klassi singlni yaratish uchun dangasa instantiatsiya deb nomlanuvchi texnikadan foydalanadi; natijada getInstance() usuli birinchi marta chaqirilmaguncha singleton namunasi yaratilmaydi. Ushbu usul faqat kerak bo'lganda singleton nusxalarini yaratishni ta'minlaydi. Download 1.17 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling