सिंगलटन डिज़ाइन पैटर्न क्या है?
सिंगलटन एक डिज़ाइन पैटर्न है जो किसी क्लास के इंस्टेंशिएशन को केवल एक इंस्टेंस तक सीमित करता है। इसके प्रमुख उपयोगों में कंकरेंसी को नियंत्रित करना और एप्लिकेशन के लिए उसके डेटा स्टोर तक पहुंचने का एक केंद्रीय बिंदु बनाना शामिल है।
उदाहरण: ग्लोबल कॉन्टेक्स्ट के साथ सिंगलटन
यह उदाहरण दर्शाता है कि Android में ग्लोबल कॉन्टेक्स्ट के साथ सिंगलटन पैटर्न को कैसे लागू किया जाए।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में जाएं, File → New Project चुनें और आवश्यक विवरण भरकर एक नया प्रोजेक्ट बनाएं।
चरण 2: लेआउट फ़ाइल में कोड जोड़ें (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<Button
android:id="@+id/show"
android:text="सिंगलटन में ग्लोबल कॉन्टेक्स्ट से टोस्ट दिखाएं"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
उपरोक्त कोड में हमने एक बटन लिया है। जब उपयोगकर्ता शो बटन पर क्लिक करता है, तो यह ग्लोबल कॉन्टेक्स्ट का उपयोग करके टोस्ट दिखाएगा।
चरण 3: MainActivity.java में कोड जोड़ें
package com.example.singletonglobalcontext;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button show;
SingletonExample singletonExample;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
show = findViewById(R.id.show);
singletonExample = SingletonExample.getInstance();
singletonExample.init(getApplicationContext());
show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(SingletonExample.get(), "ग्लोबल कॉन्टेक्स्ट के साथ दिखा रहे हैं", Toast.LENGTH_LONG).show();
}
});
}
}
चरण 4: सिंगलटन क्लास बनाएं (SingletonExample.java)
package com.example.singletonglobalcontext;
import android.content.Context;
public class SingletonExample {
private Context appContext;
private static final SingletonExample ourInstance = new SingletonExample();
public void init(Context context) {
if (appContext == null) {
this.appContext = context;
}
}
private Context getContext() {
return appContext;
}
public static Context get() {
return getInstance().getContext();
}
public static synchronized SingletonExample getInstance() {
return ourInstance;
}
private SingletonExample() { }
}
ऐप चलाएं
अपने Android डिवाइस को कंप्यूटर से कनेक्ट करें। Android Studio में टूलबार से Run आइकन पर क्लिक करें। अपना मोबाइल डिवाइस चुनें और ऐप लॉन्च होने की प्रतीक्षा करें।
अब "सिंगलटन में ग्लोबल कॉन्टेक्स्ट से टोस्ट दिखाएं" बटन पर क्लिक करें। यह ग्लोबल कॉन्टेक्स्ट का उपयोग करके एक टोस्ट संदेश प्रदर्शित करेगा।
मुख्य बिंदु
- सिंगलटन पैटर्न सुनिश्चित करता है कि पूरे ऐप में केवल एक इंस्टेंस मौजूद हो
- ग्लोबल कॉन्टेक्स्ट (Application Context) का उपयोग करके मेमोरी लीक से बचा जा सकता है
getApplicationContext()एक ऐसा कॉन्टेक्स्ट प्रदान करता है जो एक्टिविटी लाइफसाइकल से बंधा नहीं होता- थ्रेड-सेफ्टी के लिए
synchronizedकीवर्ड का उपयोग किया गया है