प्रौद्योगिकी साझेदारी

एकलप्रतिमानस्य कार्यान्वयनम्

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

१ परिचयः

१.१ पृष्ठभूमिः

यदा कस्यचित् अनुप्रयोगस्य संसाधनसाझेदारी नियन्त्रयितुं, विन्यासप्रबन्धनं कर्तुं, लॉग-अभिलेखनक्रियाः च कर्तुं आवश्यकं भवति तदा एकः सामान्यः आवश्यकता अस्ति यत् वैश्विक-प्रवेश-बिन्दुस्य उपयोगः करणीयः येन कार्यक्रमः अस्य वैश्विक-प्रवेश-बिन्दुस्य माध्यमेन तत् अभिगन्तुं शक्नोति भवेत् सः कुत्रापि प्राप्तुं शक्नोति प्रासंगिक दृष्टान्तसूचना। एतस्याः आवश्यकतायाः पूर्तये वयं Singleton Pattern इत्यस्य उपयोगं कर्तुं शक्नुमः । एकलप्रतिरूपः सुनिश्चितं करोति यत् कस्यचित् वर्गस्य केवलम् एकः उदाहरणः अस्ति तथा च तस्य दृष्टान्तस्य अभिगमनाय वैश्विकं अभिगमबिन्दुं प्रदाति ।

विशेषतः, एकलप्रतिरूपः प्रायः स्थिरविधिं (यथा getInstance()) प्रदाति यत् वर्गस्य एकमात्रं उदाहरणं प्रत्यागच्छति । यतः एषः विधिः स्थिरः अस्ति, अतः वर्गस्य उदाहरणं न निर्माय एतत् आह्वयितुं शक्यते । अस्य अर्थः अस्ति यत् यस्य कोऽपि कोडः क्लास्-पर्यन्तं प्रवेशं प्राप्नोति सः एतत् स्थिर-विधिं आह्वयित्वा एकल-दृष्टान्तं प्राप्तुं शक्नोति ।

१.२ प्रयोजनम्

अस्मिन् लेखे एकलप्रतिमानस्य मूलभूतसंकल्पनानां कार्यान्वयनपदानां च विस्तरेण परिचयः भविष्यति । अस्य लेखस्य माध्यमेन भवान् एकलप्रतिमानं कथं कार्यं करोति इति अवगन्तुं शक्नोति तथा च वास्तविकपरियोजनासु तस्य प्रभावीरूपेण उपयोगः कथं करणीयः इति ज्ञातुं शक्नोति।

2. एकलप्रतिमानं किम् ?

एकं रोचकं उदाहरणं दातुं, एकलरूपं एनिमे-जगति नायकस्य प्रभामण्डलवत् भवति यद्यपि कथानकं कथं अपि विकसितं भवतु, सर्वदा एकः एव नायकः भवति, सर्वे जानन्ति यत् सः एव कथायाः मूलः अस्ति एवं कथा यथापि प्रवर्तते तथापि कथानकं अग्रे चालयितुं सर्वे एकमेव व्यक्तिं प्राप्नुवन्ति ।

२.१ एकलटनप्रतिमानस्य लाभहानिः

लाभ

एकं उदाहरणं सुनिश्चितं कुर्वन्तु: उदाहरणानां द्वितीयकनिर्माणं परिहरन्तु संसाधनं च रक्षन्तु।
वैश्विक अभिगमबिन्दु: सुविधाजनकवैश्विकप्रवेशः सरलीकृतः आह्वानः च।
आलस्य आरम्भीकरण: कार्यप्रदर्शनस्य उन्नयनार्थं आग्रहेण उदाहरणानि निर्मायताम्।

अभावः

स्केल कर्तुं कठिनम्: एकलटनवर्गाणां विस्तारः प्रायः कठिनः भवति यतोहि निर्माता निजी अस्ति ।
सम्भाव्य कार्यप्रदर्शनस्य विषयाः: उच्च-समवर्तीवातावरणे केषुचित् कार्यान्वयनेषु कार्यप्रदर्शनस्य समस्याः भवितुम् अर्हन्ति ।
परीक्षणे कठिनता: एकलप्रतिमानं परीक्षणं कठिनं कर्तुं शक्नोति यतोहि एषा वैश्विकस्थितिः अस्ति।

२.२ एकलमोडस्य उपयोगपरिदृश्यानि

एकलप्रतिमानस्य लक्षणानुसारं तस्य उपयोगपरिदृश्यानि निम्नलिखितवर्गेषु विभक्तुं शक्यन्ते ।

  • यथा, संसाधनसाझेदारी इत्यस्य सन्दर्भे विन्याससञ्चिकादत्तांशः लॉग् सञ्चिकाः च सञ्चिकायां स्थापयितुं शक्यन्ते एते विन्यासदत्तांशः अथवा लॉग् सञ्चिकाः एकेन वस्तुना एकरूपेण पठ्यन्ते, ततः सेवाप्रक्रियायां अन्ये वस्तूनि एतत् एकलं पारयन्ति वस्तुनः एतां विन्याससूचनाम् प्राप्नुवन्ति, यत् जटिलवातावरणेषु विन्यासप्रबन्धनं सरलीकर्तुं शक्नोति ।
  • थ्रेड् पूल् इत्यादीनां संसाधनानाम् नियन्त्रणस्य सन्दर्भे बहुसूत्रयुक्तानां थ्रेड् पूल् इत्यस्य परिकल्पना सामान्यतया पूल् इत्यस्मिन् थ्रेड् इत्यस्य नियन्त्रणं सुलभं कर्तुं एकल मोड् स्वीकुर्वति

3. एकलमोडस्य कार्यान्वयनविधिः

एकलप्रतिमानस्य कार्यान्वयनस्य प्रायः त्रयः तत्त्वानि सन्ति : १.

  1. निजी निर्माता, वर्गस्य निर्मातारं निजीं कुर्वन्तु येन बहिः नूतनकीवर्डद्वारा दृष्टान्तं निर्मातुं न शक्नोति ।
  2. निजीस्थिरसन्दर्भः स्वस्य उदाहरणं प्रति सूचयति, अद्वितीयं दृष्टान्तं रक्षितुं वर्गस्य अन्तः एकं स्थिरं दृष्टान्तचरं रचयन्तु ।
  3. सार्वजनिकस्थिरविधयः ये स्वस्य उदाहरणं प्रत्यागच्छन्ति, एकं स्थिरं विधिं प्रदातव्यं येन बाह्यजगत् एतस्य पद्धत्याः माध्यमेन एकमात्रं उदाहरणं प्राप्तुं शक्नोति ।

३.१ क्षुधार्तः चीनीयः एकलटनप्रतिमानः

Hungry-शैल्याः एकल-विधायाः कृते, एकल-दृष्टान्तः वर्गस्य लोड्-करणसमये निर्मितः भवति, यत् थ्रेड्-सुरक्षितं भवति यतोहि वर्गस्य लोड्-करणसमये स्थिर-वस्तु निर्मितम् अस्ति, आह्वानसमये च प्रतिक्रिया-वेगः द्रुतः भवति हानिः अपि स्पष्टः अस्ति यत् यावत् वर्गस्य अन्ये स्थिरविधयः निष्पादिताः सन्ति अथवा वर्गः लोड् भवति तावत् एतत् उदाहरणम् अद्यापि आरभते ।

/**    
 * 饿汉单例模式:在还没有实例化的时候就初始化
 */
public class Hungry {    
  	//1. 开始时就创建实例
	private static final Hungry instance=new Hungry();
	
	// 2. 私有化的构造方法
	private void hungry() {  
	}
	
	public static Hungry getInstance() { 
		// 返回单例名
		return instance;  		
	}
}