تصف هذه المقالة طريقة التمتع بنمط تصميم Java. شاركه للرجوع إليه ، على النحو التالي:
اشرح المفهوم: أي إذا كان هناك العديد من الكائنات المتطابقة في النظام ، فما عليك سوى مشاركة نسخة واحدة ، وليس هناك حاجة إلى إنشاء كائن لكل منهما. على سبيل المثال ، في نظام النص ، يتم تعريف كل حرف ككائن ، لذلك هناك 52 حرفًا علويًا وأقل ، لذلك يجب تحديد 52 كائنًا. إذا كان هناك نص 1M ، فهناك العديد من الرسائل. إذا قام كل حرف بتحديد كائن ، فستكون الذاكرة قد انفجرت منذ فترة طويلة. ثم إذا شارك كل حرف كائنًا ، فسيوفر الموارد بشكل كبير.
في وضع وزن الذبابة ، نظرًا لأن الكائنات المختلفة يجب إنشاءها ، غالبًا ما يظهر وضع المصنع في وضع وزن الذبابة. يتم استخدام الحالة الداخلية لوزن الذبابة للمشاركة. مصنع ذبابة الوزن هو المسؤول عن الحفاظ على تجمع تخزين الكائنات (تجمع وزن الذبابة) لتخزين الكائنات مع حالة داخلية. وضع ذبابة الوزن هو وضع يحسن كفاءة البرنامج وأداءه ، والذي سيؤدي إلى تسريع سرعة تشغيل البرنامج بشكل كبير. هناك العديد من مناسبات التطبيق ، على النحو التالي:
حدد أولاً فصل وزن الذبابة المجردة:
حزمة الذبابة ؛ فئة مجردة عامة ، فئة الذبابة {Public Abstract Void Operation () ؛}تنفيذ فئة محددة:
حزمة ذبابة الذبابة ؛ فئة عامة ، يمتد خرسانة الفئة ، وزن الذبابة {السلسلة الخاصة ؛ السلسلة الخاصة ؛ ConcreteFlyweight (String str) {String = str ؛} public void operation () {system.out.println ("concrete --- flyweight:" + string) ؛}}تنفيذ فئة طريقة المصنع:
حزمة الذبابة ؛ استيراد java.util.hashtable ؛ الطبقة العامة flyweightfactory {private hashtable flyights = جديد Hashtable () ؛ // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ باطل){//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------فئة طريقة المصنع هذه أمر بالغ الأهمية ، إليك تفسير مفصل:
يتم تعريف علامة التجزئة في 1 لتخزين كل كائن ؛ يتم تحديد كائن يجب إنشاء مثيل له في 2 ، ويتم إرجاع الكائن في 6. إذا لم يكن هناك كائن يتم اختياره في علامة التجزئة ، فإن وزن الذبابة المتغير لاغية ، ويتم إنشاء وزن ذبابة جديد لتخزينه في علامة التصنيف ، ويتم إرجاع الكائن.
أخيرًا ، دعونا نلقي نظرة على نداء الذبابة:
حزمة الذبابة ، import java.util.hashtable ؛ الطبقة العامة ، فئة الذبابة ، {flyweightfactory factory = new flyweightfactory () ؛ flyweight fly1 ؛ flyweight fly2 ؛ flyweight fly3 ؛ flyweight fly4 ؛ flyweight fly5 ؛ = Factory.getFlyweight ("Google") ؛ fly2 = factory.getFlyweight ("qutr") ؛ fly3 = factory.getFlyweight ("Google") ؛ showflyweight () {fly1.operation () ؛ fly2.operation () ؛ fly3.operation () ؛ fly4.operation () ؛ fly5.operation () args) {system.out.println ("نمط وزن الذبابة!)فيما يلي نتائج التشغيل:
ملموسة --- وزن الذبابة: جوجل
ملموسة --- وزن الذبابة: QUTR
ملموسة --- وزن الذبابة: جوجل
ملموسة --- وزن الذبابة: جوجل
ملموسة --- وزن الذبابة: جوجل
ملموسة --- وزن الذبابة: جوجل
objsize = 2
لقد حددنا 6 كائنات ، 5 منها متشابهة. وفقًا لتعريف وضع وزن الذبابة ، يجب على "Google" مشاركة كائن. في العدد الفعلي للكائنات ، يمكننا أن نرى أن هناك كائنين فقط.
تلخيص:
يعد وضع وزن الذبابة مهمًا جدًا لأنه يمكن أن يساعدك في توفير الكثير من مساحة الذاكرة في نظام معقد. في لغة Java ، يستخدم نوع السلسلة وضع الموسوعة. كائن السلسلة من النوع النهائي ولا يمكن تغييره بمجرد إنشائه. في جافا ، توجد ثوابت السلسلة في البركة الثابتة. ستضمن Java أن ثابت السلسلة يحتوي على نسخة واحدة فقط في المجموعة الثابتة. السلسلة A = "ABC" ، حيث "ABC" ثابت السلسلة.
يجب على أولئك الذين يعرفون جافا معرفة المثال التالي:
string a = "hello" ؛ string b = "hello" ؛ if (a == b) system.out.println ("ok") ؛ elsesystem.out.println ("error") ؛نتيجة الإخراج هي: حسنًا. يمكن ملاحظة أنه إذا قارن الشرط عناوين اثنين A و B ، أو يمكن قول أنه مساحة للذاكرة
الملخص الأساسي: الكائنات التي يمكن مشاركتها ، أي كائنات من نفس النوع الذي تم إرجاعه هي في الواقع نفس المثيل. عندما يتطلب العميل إنشاء كائن ، سوف يكتشف المصنع ما إذا كان هناك مثيل لهذا الكائن. إذا كان موجودًا ، فقم بإرجاع مثيل الكائن هذا مباشرة. إذا لم يكن موجودًا ، فقم بإنشائها وحفظها. هذا له بعض المعنى لنمط المفرد. عادةً ما يكون لدى فئة المصنع متغير عضو من النوع المحدد لحفظ الكائنات ، مثل علامة التجزئة ، المتجه ، إلخ. في Java ، تجمعات اتصال قاعدة البيانات ، تجمعات مؤشرات الترابط ، وما إلى ذلك هي التطبيقات التي تستخدم وضع Enyuan.
لمزيد من المحتوى المتعلق بـ Java ، يمكن للقراء المهتمين بهذا الموقع عرض الموضوعات: "بنية بيانات Java وبرنامج تعليمي الخوارزمية" ، "ملخص Tips Java Operation DOM" ، "ملخص ملف Java ونصائح تشغيل الدليل" و "ملخص نصائح Java Cache Operation Tips"
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.