Mode filtre Java (modèle de filtre / critères)
Le modèle de filtre ou le modèle de critères est un modèle de conception qui permet aux développeurs d'utiliser différentes normes pour filtrer un groupe d'objets et les connecter de manière découplée à travers des opérations logiques. Ce type de motif de conception est un motif structurel, qui combine plusieurs normes pour obtenir une seule norme.
Le modèle de filtre ou le modèle de critères est un modèle de conception qui permet aux développeurs d'utiliser différentes normes pour filtrer un groupe d'objets et les connecter de manière découplée à travers des opérations logiques. Ce type de motif de conception est un motif structurel, qui combine plusieurs normes pour obtenir une seule norme.
accomplir
Nous créerons un objet personne, une interface de critères et une classe d'entité qui implémente l'interface pour filtrer la liste des objets de personne. CriteApatterndemo, notre classe de démonstration utilise des objets de critères pour filtrer les listes d'objets de personne en fonction de diverses normes et combinaisons.
Étape 1
Créez une classe pour appliquer la norme sur cette classe.
Personne.java
Personne de classe publique {nom de chaîne privée; Gender de chaîne privée; chaîne privée MaritalStatus; Personne publique (nom de chaîne, chaîne Sexe, String MailitalStatus) {this.name = name; this.gender = genre; this.MaritalStatus = CalitalStatus; } public String getName () {Nom de retour; } public String getgender () {return Gender; } public String getMaritalStatus () {return CalitalStatus; }}Étape 2
Créez une interface pour les critères.
Critères.java
Importer java.util.list; Critères d'interface publique {Liste publique <ponse> MeetCriteria (list <ponge> Persons);}Étape 3
Créez une classe d'entité qui implémente l'interface des critères.
Criteriamale.java
import java.util.arraylist; import java.util.list; Classe publique Criteriamale implémente les critères {@Override public list <ponv> MeetingCriteria (list <onon> personnes) {list <onon> malePersons = new ArrayList <onon> (); pour (personne personne: personnes) {if (personne.getgender (). equalsignorecase ("mâle")) {malePersons.add (personne); }} return malepersons; }}Critères
import java.util.arraylist; import java.util.list; Classe publique CriteriaFemale met en œuvre les critères {@Override Public List <ponse> Meemingitria (list <ponde> Persons) {list <ponge> femepersons = new ArrayList <onon> (); pour (personne personne: personnes) {if (personne.getgender (). equalsignorecase ("feme")) {femellepersons.add (personne); }} retour des femmes; }}Critère de.java
import java.util.arraylist; import java.util.list; CLASSE PUBLIQUE CRITÈRES DE CRITÉSEMENTS IMPLIMÉ CRITÈRES {@Override Public List <Ponon> MeetCriteria (list <onon> Persons) {list <onon> singlePersons = new ArrayList <onon> (); pour (personne personne: personnes) {if (personne.getMaritalStatus (). equalSignoreCase ("single")) {singlePersons.add (personne); }} return singlePersons; }}Et critère.java
Importer java.util.list; La classe publique et les critères mettent en œuvre les critères {critères privés critères; critères privés d'autres critères; public et critères (critères critères, critères autres critères) {this.critria = critères; this.othercriteria = autres critères; } @Override Public List <ponse> MeetCriteria (list <ponge> Persons) {list <onon> FirstCriteRiapersons = critères.meetCriteria (personnes); return OtherCriteria.MeetCriteria (FirstCriteRiapersons); }}Orcriteria.java
Importer java.util.list; classe publique Orcriteria met en œuvre des critères {critères privés critères; critères privés d'autres critères; Orcritoria publique (critères critères, critères autres critères) {this.critria = critères; this.othercriteria = autres critères; } @Override Public List <ponse> MeetCriteria (list <ponge> Persons) {list <onon> firstCriteRiTtems = critères.meetCriteria (personnes); List <onon> autres CriteRiTtems = autresCriteria.meetCriteria (Persons); pour (personne personne: autres CriteRiTems) {if (! FirstCriteRiTtems.conts (personne)) {FirstCriteRiTtems.add (personne); }} return FirstCriteRiTems; }}Étape 4
Utilisez différents critères (critères) et leur combinaison pour filtrer les listes d'objets de personne.
Critère
classe publique CriteApatterNdemo {public static void main (String [] args) {list <ponv> Persons = new ArrayList <onh> (); Persons.Add (New Person ("Robert", "Homme", "Single")); Persons.add (nouvelle personne ("John", "Homme", "marié")); Persons.add (New Person ("Laura", "Femme", "Marié")); Persons.Add (New Person ("Diana", "Femme", "Single")); Persons.Add (New Person ("Mike", "Homme", "Single")); Persons.Add (New Person ("Bobby", "Homme", "Single")); Critères mâles = nouveau critère (); Critères femelles = nouveau critère de la femme (); Critères simples = nouveau critère en (); Critères singlemale = Nouveau et critère (célibataire, homme); Critères SingleorFemale = Nouvelle Orcriteria (célibataire, femelle); System.out.println ("Hommes:"); Printersons (mâle.meetcriteria (personnes)); System.out.println ("/ nfemales:"); Printersons (Femme.MeetCriteria (Persons)); System.out.println ("/ nsingle mâles:"); PRINTPERSONS (SingleMale.meetCriteria (Persons)); System.out.println ("/ nsingle ou femelles:"); PRINTPERSONS (singleorfemale.meetCriteria (personnes)); } Public Static Void PrintPersons (List <Shon> Persons) {For (Person Person: Persons) {System.out.println ("Person: [Name:" + Person.getName () + ", SexaritalStatus () +") "); }}}Étape 5
Vérifiez la sortie.
Mâles: Personne: [Nom: Robert, Gender: Homme, État matrimonial: Single] Personne: [Nom: John, Gender: Méronie, STATUATION CALIALE: MARIÉ] Personne: [Nom: Mike, Gender: célibataire] Females: Personne: Personne: [Nom: Laura, Gender: Femme, marital Statut: Marié] Personne: [Nom: Diana, Gender: Femme, Marital Status Statut: célibataire] hommes célibataires: Personne: [Nom: Robert, Genre: Homme, État matrimonial: Single] Personne: [Nom: Mike, Gender: Homme, État matrimonial: Single] Personne: [Nom: Bobby, Gender: Homme, Marital Status: Single] Single ou Females: Personne: [Nom: Robert: Gender: Méronie, Statut conjoint: Personne: [Nom: Mike, Diana, Genre: Femme, Feme Genre: Homme, État matrimonial: Single] Personne: [Nom: Bobby, Genre: Homme, État matrimonial: Single] Personne: [Nom: Laura, Genre: Femme, État matrimonial: Marié]
Merci d'avoir lu, j'espère que cela peut vous aider. Merci pour votre soutien à ce site!