وضع مرشح Java (نمط المرشح/المعايير)
نمط المرشح أو نمط المعايير هو نمط تصميم يتيح للمطورين استخدام معايير مختلفة لتصفية مجموعة من الكائنات وتوصيلها بطريقة مفصلة من خلال العمليات المنطقية. هذا النوع من نمط التصميم هو نمط هيكلي ، يجمع بين معايير متعددة للحصول على معيار واحد.
نمط المرشح أو نمط المعايير هو نمط تصميم يتيح للمطورين استخدام معايير مختلفة لتصفية مجموعة من الكائنات وتوصيلها بطريقة مفصلة من خلال العمليات المنطقية. هذا النوع من نمط التصميم هو نمط هيكلي ، يجمع بين معايير متعددة للحصول على معيار واحد.
ينجز
سنقوم بإنشاء كائن شخص وواجهة معايير وفئة الكيان التي تنفذ الواجهة لتصفية قائمة كائنات الشخص. المعايير ، يستخدم الفئة التجريبية لدينا كائنات معايير لتصفية قوائم كائنات الشخص بناءً على معايير ومجموعات مختلفة.
الخطوة 1
إنشاء فئة لتطبيق المعيار على تلك الفئة.
شخص
شخص فئة عامة {اسم السلسلة الخاصة ؛ سلسلة جنسية خاصة ؛ سلسلة خاصة MitralStatus ؛ الشخص العام (اسم السلسلة ، سلسلة الجنس ، سلسلة maritalstatus) {this.name = name ؛ this.gender = الجنس ؛ this.maritalStatus = MatitalStatus ؛ } السلسلة العامة getName () {return name ؛ } السلسلة العامة getGender () {return الجنس ؛ } السلسلة العامة getMaritalStatus () {return MaritalStatus ؛ }}الخطوة 2
إنشاء واجهة للمعايير.
المعايير
استيراد java.util.list ؛ معايير الواجهة العامة {القائمة العامة <Person> MeetCriteria (قائمة <Person> الأشخاص) ؛}الخطوة 3
إنشاء فئة كيان التي تنفذ واجهة المعايير.
Criteriamale.java
استيراد java.util.arraylist ؛ استيراد java.util.list ؛ تقوم Criteriamale Public Criteriamale بتنفيذ معايير {Override Public List <Person> MeetCriteria (قائمة <Person> الأشخاص) {List <Person> MalePersons = new ArrayList <Phone> () ؛ لـ (الشخص الشخص: الأشخاص) {if (person.getGender (). equalSignoreCase ("male")) {malepersons.add (person) ؛ }} إرجاع مالية ؛ }}المعايير
استيراد java.util.arraylist ؛ استيراد java.util.list ؛ تقوم معايير الطبقة العامة بتنفيذ معايير {Override Public List <Person> MeetCriteria (قائمة <Person> الأشخاص) {List <Person> femalepersons = new ArrayList <Person> () ؛ لـ (الشخص الشخص: الأشخاص) {if (person.getGender (). equalsIngInoreCase ("female")) {femalepersons.add (person) ؛ }} إرجاع الإناث ؛ }}Criteriasingle.java
استيراد java.util.arraylist ؛ استيراد java.util.list ؛ تقوم Criteriasingle Public بتنفيذ معايير {Override Public List <Person> MeetCriteria (قائمة <Perian> الأشخاص) {List <Pirons> singerpersons = new ArrayList <Phone> () ؛ لـ (الشخص الشخص: الأشخاص) {if (person.getMaritalStatus (). equalsIngIsnoreCase ("single")) {singlepersons.add (person) ؛ }} إرجاع singlepersons ؛ }}andcriteria.java
استيراد java.util.list ؛ الطبقة العامة والمعايير تنفذ معايير المعايير الخاصة ؛ المعايير الخاصة الأخرى ؛ الشراء العام (معايير المعايير ، معايير المعايير الأخرى) {this.criteria = المعايير ؛ هذا. } Override Public List <Person> meetCriteria (قائمة <Person> أشخاص) {list <Phone> firstCriteriApersons = Criteria.MeetRiteria (الأشخاص) ؛ إرجاع othercriteria.meetcriteria (firstcriteriapersons) ؛ }}orcriteria.java
استيراد java.util.list ؛ الطبقة العامة orcriteria تنفذ معايير {معايير المعايير الخاصة ؛ المعايير الخاصة الأخرى ؛ المعايير العامة (معايير المعايير ، المعايير الأخرى) {this.criteria = المعايير ؛ هذا. } Override Public List <Person> meetCriteria (قائمة <Person> أشخاص) {List <Person> firstCriterIaItems = Criteria.MeetCriteria (الأشخاص) ؛ قائمة <Person> othercriteriAItems = othercriteria.meetcriteria (الأشخاص) ؛ لـ (الشخص الشخص: othercriteriaItems) {if (! firstCriterIaItems.Contains (person)) {firstCriteriAtems.add (person) ؛ }} return firstCriteriAItems ؛ }}الخطوة 4
استخدم معايير مختلفة (المعايير) ومجموعها لتصفية قوائم كائنات الشخص.
المعايير
معايير الفئة العامة {public static void main (string [] args) {list <Person> persons = new ArrayList <Person> () ؛ PERSONS.ADD (شخص جديد ("روبرت" ، "ذكر" ، "واحد")) ؛ persons.Add (شخص جديد ("جون" ، "ذكر" ، "متزوج")) ؛ persons.Add (شخص جديد ("لورا" ، "أنثى" ، "متزوج")) ؛ persons.Add (شخص جديد ("ديانا" ، "أنثى" ، "عزباء")) ؛ persons.Add (شخص جديد ("مايك" ، "ذكر" ، "واحد")) ؛ persons.Add (شخص جديد ("بوبي" ، "ذكر" ، "واحد")) ؛ معايير ذكر = New Criteriamale () ؛ معايير أنثى = معايير جديدة () ؛ المعايير Single = New Crateriasingle () ؛ معايير Singlemale = جديد وكرويريا (واحد ، ذكر) ؛ معايير singleorfemale = orcriteria جديد (واحد ، أنثى) ؛ System.out.println ("الذكور:") ؛ printpersons (male.meetcriteria (أشخاص)) ؛ System.out.println ("/nfemales:") ؛ printpersons (female.meetcriteria (أشخاص)) ؛ System.out.println ("/nsingle males:") ؛ PrintPersons (singlemale.meetcriteria (أشخاص)) ؛ System.out.println ("/nsingle أو الإناث:") ؛ printpersons (singleorfemale.meetcriteria (أشخاص)) ؛ } printpersons printpersons static static (قائمة <Person>) {for (الشخص الشخص: الأشخاص) {system.out.println ("الشخص: [الاسم:" + person.getName () + "، الجنس: }}}الخطوة 5
تحقق من الإخراج.
الذكور: الشخص: : واحد] الذكور الفردية: الشخص: [الاسم: روبرت ، الجنس: ذكر ، الحضرية ، الحالة الزواجية: واحد] الشخص: [الاسم: مايك ، الجنس: ذكر ، الحالة الزواجية: عزباء] الشخص: [الاسم: بوبي ، الجنس: ذكر ، الزوجية ، الحالة الزواجية: عزباء) أو إناث: الذكور ، الحالة الزواجية: عزباء] الشخص: [الاسم: بوبي ، الجنس: ذكر ، الحالة الزوجية: واحد] الشخص: [الاسم: لورا ، الجنس: أنثى ، الحالة الزوجية: متزوج]
شكرا لك على القراءة ، آمل أن تساعدك. شكرا لك على دعمك لهذا الموقع!