Mode filter java (pola filter/kriteria)
Pola filter atau pola kriteria adalah pola desain yang memungkinkan pengembang menggunakan standar yang berbeda untuk menyaring kelompok objek dan menghubungkannya dengan cara yang dipisahkan melalui operasi logis. Jenis pola desain ini adalah pola struktural, yang menggabungkan beberapa standar untuk mendapatkan standar tunggal.
Pola filter atau pola kriteria adalah pola desain yang memungkinkan pengembang menggunakan standar yang berbeda untuk menyaring kelompok objek dan menghubungkannya dengan cara yang dipisahkan melalui operasi logis. Jenis pola desain ini adalah pola struktural, yang menggabungkan beberapa standar untuk mendapatkan standar tunggal.
menyelesaikan
Kami akan membuat objek orang, antarmuka kriteria, dan kelas entitas yang mengimplementasikan antarmuka untuk memfilter daftar objek orang. CRITERIPATERDEMO, kelas demo kami menggunakan objek kriteria untuk memfilter daftar objek orang berdasarkan berbagai standar dan kombinasi.
Langkah 1
Buat kelas untuk menerapkan standar pada kelas itu.
Orang.java
orang kelas publik {nama string privat; Jenis kelamin string pribadi; Private String MaritalStatus; orang publik (nama string, gender string, string maritalstatus) {this.name = name; this.gender = jenis kelamin; this.maritalstatus = maritalstatus; } public string getName () {return name; } public string getGender () {return gender; } public String getMaritalStatus () {return maritalstatus; }}Langkah 2
Buat antarmuka untuk kriteria.
Kriteria.java
impor java.util.list; Kriteria Antarmuka Publik {Daftar Publik <Fon> MeetCriteria (Daftar <Fone> orang);}Langkah 3
Buat kelas entitas yang mengimplementasikan antarmuka kriteria.
Criteriamale.java
impor java.util.arraylist; impor java.util.list; Criteriamale kelas publik mengimplementasikan kriteria {@Override Daftar Publik <Fon> MeetCriteria (Daftar <Fone> orang) {Daftar <Fon> MalePersons = NEW ARRAYLIST <FONE> (); untuk (orang orang: orang) {if (orang. }} return MalePersons; }}Criteriafemale.java
impor java.util.arraylist; impor java.util.list; CriteriaFemale kelas publik mengimplementasikan kriteria {@Override Daftar publik <Fon> MeetCriteria (Daftar <Fone> orang) {Daftar <Fon> femaleperons = new ArrayList <Fon> (); untuk (orang orang: orang) {if (orang. }} return femaleperson; }}CriteriaSingle.java
impor java.util.arraylist; impor java.util.list; CriteriAsingle kelas publik mengimplementasikan kriteria {@Override Daftar Publik <Fon> MeetCriteria (Daftar <Fone> orang) {Daftar <son> singlepersons = new ArrayList <Fon> (); untuk (orang orang: orang) {if (tuan. }} return SinglePersons; }}Dan criteria.java
impor java.util.list; kelas publik dan kriteria menerapkan kriteria {kriteria kriteria pribadi; kriteria pribadi kriteria lain; Publik dan kriteria (kriteria kriteria, kriteria lain kriteria) {this.criteria = kriteria; this.othercriteria = Criteria lain; } @Override Daftar Publik <Fon> MeetCriteria (Daftar <Fon> orang) {Daftar <Fon> FirstCriteriapersons = criteria.meetCriteria (orang); mengembalikan criteria lainnya. }}Orcriteria.java
impor java.util.list; Orcriteria kelas publik mengimplementasikan kriteria {kriteria kriteria pribadi; kriteria pribadi kriteria lain; Orcriteria Publik (Kriteria Kriteria, Kriteria lain Criteria) {this.criteria = kriteria; this.othercriteria = Criteria lain; } @Override Daftar Publik <Fon> MeetCriteria (Daftar <Fon> orang) {Daftar <Fon> FirstCriteriaItems = criteria.meetCriteria (orang); Daftar <Son> OtherCriteriaItems = OtherCriteria.MeetCriteria (Orang); untuk (orang orang: OtherCriteriaItems) {if (! FirstCriteriaItems.contains (orang)) {firstcriteriaitems.add (orang); }} return firstcriteriaitems; }}Langkah 4
Gunakan kriteria (kriteria) yang berbeda dan kombinasinya untuk memfilter daftar objek orang.
CriteriapatternDemo.java
Public Class CriteriPatternDemo {public static void main (string [] args) {list <fone> orang = new arraylist <fone> (); orang. orang. orang. orang. orang. orang. Kriteria pria = criteriaMale baru (); Kriteria perempuan = kriteria baru (); Kriteria single = criteriaSingle baru (); Kriteria singlemale = baru dan kriteria (lajang, pria); Kriteria singleorfemale = Orcriteria baru (lajang, wanita); System.out.println ("laki -laki:"); printpersons (pria. System.out.println ("/nfemales:"); printpersons (wanita. System.out.println ("/nsingle jantan:"); printpersons (singlemale.meetcriteria (orang)); System.out.println ("/nsingle atau wanita:"); printpersons (singleorfemale.meetcriteria (orang)); } public static void printpersons (Daftar <Son> orang) {for (orang orang: orang) {System.out.println ("orang: [Nama:" + orang.getname () + ", gender:" + orang. }}}Langkah 5
Verifikasi output.
Laki -laki: Orang: [Nama: Robert, Jenis Kelamin: Laki -laki, Status Perkawinan: Lajang] Orang: [Nama: John, Jenis Kelamin: Pria, Status Perkawinan: Menikah] Orang: [Nama: Mike, Jenis Kelamin: Pria, Status Perkawinan: Lajang] Orang: [Nama: Bobby, Jenis Kelamin: Status Perkawinan: Lajang] Perempuan: Person: [Nama: Laura, Gender: Wanita, Perkawinan: Lajang Lajang] Perempuan: Person: [Nama: Laura, Gender: Wanita, Perkawinan. : Single ]Single Males: Person : [ Name : Robert, Gender : Male, Marital Status : Single ]Person : [ Name : Mike, Gender : Male, Marital Status : Single ]Person : [ Name : Bobby, Gender : Male, Marital Status : Single ]Single Or Females: Person : [ Name : Robert, Gender : Male, Marital Status : Single ]Person : [ Name : Diana, Gender : Female, Marital Status : Single ]Person : [ Name : Mike, Gender : Pria, Status Perkawinan: Lajang] Orang: [Nama: Bobby, Jenis Kelamin: Pria, Status Perkawinan: Lajang] Orang: [Nama: Laura, Jenis Kelamin: Wanita, Status Perkawinan: Menikah]
Terima kasih telah membaca, saya harap ini dapat membantu Anda. Terima kasih atas dukungan Anda untuk situs ini!