وضع المركب ، يجمع بين الكائنات في بنية شجرة لتمثيل التسلسل الهرمي "الجزئي". يمكّن وضع المركب المستخدمين من استخدام الكائنات الفردية والكائنات المدمجة باستمرار. يتيح وضع المركب للعملاء إكمال الوظائف التي تتطلب في الأصل عبارات التحكم في العملية بمثابة تعديل ملفات التكوين.
الميزات: بالنسبة لهياكل البيانات الهرمية المتكررة أو التي تشبه الأشجار ، يمكن معالجتها بأبسط طريقة.
التطبيقات في تطوير مستوى المؤسسة والأطر شائعة الاستخدام: بنية دليل النظام وهيكل التنقل في الموقع
فيما يلي مثال على بنية الدليل:
السيناريو: لنفترض أن لدينا الآن دليلًا ، وهناك دليل وملفات فرعية ضمن الدليل. الآن نريد عرض الدليل بأكمله وجميع الملفات ووقت الإنشاء في الدليل.
الرمز المحدد كما يلي:
package com.test.composite ؛ import java.util.arraylist ؛ import java.util.date ؛ import java.util.list ؛ public class demo {public static void main (string [] args) {date d = new date () ؛ dir f1 = new dir ("مجموعتي" ، د) ؛ D.Setyear (2012) ؛ dir f2 = new dir ("picture" ، d) ؛ dir f3 = new dir ("music" ، d) ؛ D.Setyear (2013) ؛ الفعلي F4 = جديد فعلي ("Xi Yangyang و Big Big Wolf.avi" ، D) ؛ F1.Add (F4) ؛ الفعلي f5 = جديد فعلي ("TaiyAnghua.jpg" ، D) ؛ الفعلي F6 = جديد فعلي ("مصنفة من الفولاذ المقاوم للصدأ. jpg" ، د) ؛ f2.add (F5) ؛ f2.Add (F6) ؛ F1.Add (F2) ؛ F1.Add (F3) ؛ f1.showfile () ؛ }}/*** أولاً وقبل كل شيء ، ينتمي الدليل والملف إلى الملف ، حتى نتمكن من تجريد ملف مجردة*/واجهة AbstractFile {/*** طريقة ملف العرض*/public void showfile () ؛}/*** ملف حقيقي*/class reactivefile تنفذ مجردة {اسم السلسلة الخاصة ؛ تاريخ خاص تم إنشاؤه ؛ public alualfile (اسم السلسلة ، التاريخ الذي تم إنشاؤه) {this.name = name ؛ this.createdate = createdate ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } التاريخ العام getCreatedAte () {return createdAte ؛ } public void setCreatedAte (date createdate) {this.createdate = createTate ؛ } / *** قم بتنفيذ طريقة ملف العرض لفئة الملف التجريدية* / public void showfile () {system.out.println ("اسم الملف:"+this.name+"-إنشاء الوقت:"+this.createdate.getTime ()) ؛ }}/*** ملف الدليل*/class dir يشرف على الملخص {اسم السلسلة الخاصة ؛ تاريخ خاص تم إنشاؤه ؛ / *** كملف دليل ، سيكون هناك قائمة فرعية إضافية*/ قائمة خاصة <StractFile> قائمة = ArrayList <> () الجديدة ؛ dir (اسم السلسلة ، التاريخ الذي تم إنشاؤه) {super () ؛ this.name = name ؛ this.createdate = createdate ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } التاريخ العام getCreatedAte () {return createdAte ؛ } public void setCreatedAte (date createdate) {this.createdate = createTate ؛ } / ** * إضافة ملف دليل ، أضف فرعيًا أو دليلًا فرعيًا إلى دليل * / public void add (AbstractFile f) {this.list.add (f) ؛ } / ** * حذف تشغيل ملف الدليل ، حذف subfile أو subdirectory * / public void remove (AbstractFile f) {this.list.remove (f) ؛ } / ** * الحصول على تشغيل ملف الدليل ، الحصول على subfile أو subdirectory أسفل الدليل * / public AbstractFile getIndex (int index) {return this.list.get (index) ؛ } public void showfile () {system.out.println ("اسم الدليل:"+this.name+"-إنشاء الوقت:"+this.createdate.getTime ()) ؛ لـ (AbstractFile F: list) {f.showfile () ؛ }}}يشبه الوضع المركب أكثر طريقة اجتياز ، ولكن هذه الطريقة لها أيضًا بعض القيود ، مثل استهداف البيانات المشابهة فقط لهيكل الأشجار.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.