أنماط التصميم: Singleton in Java

نشرت: 2021-11-13

تعد أنماط التصميم مفيدة للمبرمجين عندما يحتاجون إلى استخدام أفضل الممارسات المتاحة في تطوير البرامج الموجهة للكائنات. يمكن فهم أنماط التصميم على أنها حلول مجربة ومجربة لحل مشكلة التصميم المطروحة. تصف أنظمة التصميم المشكلة والحل ومتى يتم تطبيق الحل وعواقبه. بطريقة ما ، يمكن التفكير في أنماط التصميم على أنها قوالب مختلفة يمكن لمطوري البرامج تنفيذها عند حل مشكلات تصميم محددة موجهة للكائنات.

تتضمن بعض ميزات استخدام أنماط التصميم في Java مقارنةً بالترميز من البداية ما يلي:

  • تم تحديد أنماط التصميم وتنفيذها بالفعل. نتيجة لذلك ، فإنها توفر نهجًا قياسيًا لحل المشكلات المتكررة. بهذا المعنى ، يساعد المبرمجين على توفير الكثير من الوقت والجهد.
  • يضمن استخدام أنماط التصميم إمكانية إعادة استخدام جزء التعليمات البرمجية الخاص بك ، مما يؤدي إلى قابلية عالية للصيانة والمتانة لشفرة Java الخاصة بك. كل هذا يقلل بعد ذلك التكلفة الإجمالية للملكية (TCO) للبرنامج في متناول اليد.
  • تجعل أنماط التصميم الشفرة سهلة القراءة والفهم ، مما يؤدي إلى اتصال أسرع وتطوير برمجيات سلس.

تقدم لغة برمجة Java أنماط تصميم متنوعة للمبرمجين والمطورين ، والتي يمكن تقسيمها على نطاق واسع إلى ثلاث فئات:

  • أنماط التصميم الإبداعي
  • أنماط التصميم الإنشائي
  • أنماط التصميم السلوكي

تُستخدم كل هذه الأنماط لحالات وأغراض استخدام مختلفة. من خلال هذه المقالة ، دعنا نتحدث عن نوع واحد من أنماط التصميم في Java - نمط تصميم Singleton ، والذي يقع ضمن فئة أنماط التصميم الإبداعي.

جدول المحتويات

نمط تصميم Singleton في جافا

ينتمي نمط التصميم الفردي إلى فئة نمط التصميم الإبداعي. إنه يضمن أن فئة ما لها مثيل واحد فقط ، مما يوفر لهذا المثيل نقطة وصول عالمية. عند القيام بذلك ، فإن نموذج تصميم Singleton يحل مشكلتين في وقت واحد - وتشمل هذه:

1. يضمن أن فئة معينة لها مثيل واحد فقط.

من المهم أخذ هذا في الاعتبار ، خاصة عند العمل على الموارد المشتركة ، مثل قاعدة بيانات أو ملف. تخيل أنك قمت بإنشاء كائن ، ولكن بعد فترة ، قررت إنشاء كائن جديد. في نمط تصميم Singleton ، بدلاً من تلقي كائن جديد ، ستحصل على الكائن الذي قمت بإنشائه بالفعل. بهذه الطريقة ، يضمن نمط التصميم هذا عدم وجود تكرار للكائنات وأن الفئة بها مثيل واحد فقط. من المستحيل إجراء نسخ متماثل مع المُنشئين لأن استدعاءات المُنشئ يجب أن تُرجع دائمًا كائنًا جديدًا.

2. يوفر نقطة وصول عالمية إلى حالة معينة.

المتغيرات العامة التي تستخدمها لتخزين الأشياء الأساسية سهلة الاستخدام. كما أنها غير آمنة بنفس القدر لأن أي جزء من التعليمات البرمجية لديه القدرة على الكتابة فوق محتويات متغيراتك العامة ، مما يؤدي إلى جزء خاطئ من التعليمات البرمجية نيابة عنك. تمامًا مثل المتغيرات العامة ، تتيح لك Singleton Patterns الوصول إلى كائنات مختلفة من أي مكان في البرنامج. ومع ذلك ، على عكس المتغيرات العامة ، تؤمن Singleton Patterns هذا المثيل من الكتابة فوقه بواسطة برنامج آخر.

في الوقت الحاضر ، يتم استخدام نمط تصميم Singleton على نطاق واسع ومنتشر لدرجة أن المبرمجين قد يطلقون على شيء Singleton حتى لو كان يحل مشكلة واحدة فقط من المشكلات المذكورة أعلاه. تشترك جميع تطبيقات أنماط تصميم Singleton في الخطوتين التاليتين:

  • جعل المُنشئ الافتراضي خاصًا لمنع الفئات والكائنات الأخرى من استخدام عوامل تشغيل جديدة مع فئات Singleton.
  • بناء طريقة إنشاء ثابتة لتعمل كمُنشئ. هذه الطريقة ، إذن ، تستدعي المُنشئ الخاص لإنشاء كائن وحفظه في حقل ثابت. جميع الاستدعاءات القادمة لهذه الطريقة المعينة تعيد الكائن المخزن مؤقتًا.

يعد أداء الحكومة مثالًا ممتازًا للحياة الواقعية لفهم كيفية عمل Singleton Design Patterns. بغض النظر عن الهويات الشخصية للأفراد الذين يشكلون الحكومات ، فإن العنوان ، "حكومة X" ، هو نقطة الوصول العالمية التي تحدد مجموعة الأشخاص التي يتم الحديث عنها.

تنفيذ نمط تصميم Singleton في جافا

يرجى الاطلاع على قائمة الخطوات التالية لتنفيذ نموذج تصميم Singleton الخاص بك في Java:

  • أضف حقلاً ثابتًا خاصًا إلى الفصل الذي ترغب في تخزين نسخة مفردة فيه.
  • للحصول على مثيل مفرد مناسب ، يجب أن تعلن عن طريقة عامة ثابتة.
  • الآن ، تحتاج إلى تنفيذ "التهيئة البطيئة" داخل الطريقة الثابتة. يجب أن يطور هذا بشكل أساسي كائنًا جديدًا في استدعائه الأول ويضعه في الحقل الثابت. يجب أن تعيد الطريقة الثابتة دائمًا هذا المثيل المحدد في جميع الاستدعاءات اللاحقة.
  • اجعل المنشئ خاصًا. ستظل الطريقة الثابتة للفئة قادرة على استدعاء المُنشئ ، ولكن ليس الكائنات الأخرى.
  • يرجى مراجعة كود العميل واستبدال جميع المكالمات المباشرة إلى مُنشئ Singleton باستدعاءات لطريقة الإنشاء الثابتة.

ختاما

تعد Java لغة برمجة متنوعة للغاية ومؤثرة ، وقد ظهرت كأساس لمعظم تطبيقات الويب وسطح المكتب المستخدمة اليوم. يوفر العديد من الميزات والاستراتيجيات التي يمكن للمبرمجين استخدامها لتطوير برامج ذات أداء أفضل بطريقة محسّنة. أنماط التصميم هي إحدى هذه الإستراتيجيات التي اعتمدها مبرمجو Java لجعل رموزهم قابلة للقراءة ، وإعادة الاستخدام ، ومفهومة.

تشكل أنماط التصميم أحد المفاهيم الأساسية التي يجب على أي مطور برامج طموح النظر فيها. عالم تطوير البرمجيات واسع ، ويغطي جميع الجوانب من الواجهة الأمامية والخلفية وقاعدة البيانات والخادم والمزيد. في مثل هذا السيناريو ، تكون الحاجة إلى الساعة منظمة في نهجك للتعلم. في upGrad ، يمكنك الاطلاع على دورات تطوير البرمجيات التي ستساعدك على بناء حياة مهنية طويلة الأمد في مجال تطوير البرمجيات. يتم تقديم هذه الدورة بالتعاون مع IIIT-B ، من قبل خبراء الصناعة وتمنحك فرصة للتقدم في حياتك المهنية في الاتجاه الذي تختاره. تحقق من تفاصيل الدورة وقم بالتسجيل اليوم - تبدأ الدورة في 30 سبتمبر 2021!

هل نمط تصميم Singleton هو نمط التصميم الوحيد المتاح مع Java؟

لا ، تقدم Java العديد من أنماط التصميم للمبرمجين ، و Singleton هو واحد منهم فقط.

ما هي أنواع أنماط التصميم المتوفرة مع Java؟

توفر Java على نطاق واسع ثلاثة أنواع من أنماط التصميم للمطورين ؛
1. أنماط التصميم الإبداعي
2. أنماط التصميم الإنشائي
3. أنماط التصميم السلوكية

ما هي فوائد استخدام أنماط التصميم في Java؟

يوفر استخدام أنماط التصميم في التعليمات البرمجية الخاصة بك مزايا اللقطة المؤكدة التالية:
1. سهولة القراءة
2. تحسين نمطية
3. سهولة الوصول
4. السهولة في تصميم وإنشاء البرامج.