Modo de filtro Java (patrón de filtro/criterio)
El patrón de filtro o el patrón de criterios es un patrón de diseño que permite a los desarrolladores usar diferentes estándares para filtrar un grupo de objetos y conectarlos de manera desacoplada a través de operaciones lógicas. Este tipo de patrón de diseño es un patrón estructural, que combina múltiples estándares para obtener un solo estándar.
El patrón de filtro o el patrón de criterios es un patrón de diseño que permite a los desarrolladores usar diferentes estándares para filtrar un grupo de objetos y conectarlos de manera desacoplada a través de operaciones lógicas. Este tipo de patrón de diseño es un patrón estructural, que combina múltiples estándares para obtener un solo estándar.
lograr
Crearemos un objeto de persona, interfaz de criterios y clase de entidad que implementa la interfaz para filtrar la lista de objetos de persona. CriteriaPatternDemo, nuestra clase de demostración utiliza objetos de criterios para filtrar listas de objetos de persona basados en diversos estándares y combinaciones.
Paso 1
Cree una clase para aplicar el estándar en esa clase.
Persona.java
Persona de clase pública {nombre de cadena privada; género de cadena privada; Cadena privada Maritalstatus; persona pública (nombre de cadena, género de cadena, cadena maritalstatus) {this.name = name; this.gender = género; this.MaritalStatus = maritalstatus; } public String getName () {nombre de retorno; } public String getGender () {return gender; } public String getMaritalStatus () {return maritalstatus; }}Paso 2
Cree una interfaz para criterios.
Criterio.java
import java.util.list; Criterios de interfaz pública {Lista pública <Oll> MeetCriteria (List <Oll> Personas);}Paso 3
Cree una clase de entidad que implementa la interfaz de criterios.
Criteriamale.java
import java.util.arrayList; import java.util.list; Public Class Criteriamale implementa criterios {@Override Public List <Oll> Mescriteria (List <Oll> Persons) {List <Oll> malePersonsons = new ArrayList <Olli> (); para (persona persona: personas) {if (persona.getgender (). Equalsignorecase ("macho")) {malePersons.add (persona); }} return Maleepersons; }}Criteriofemale.java
import java.util.arrayList; import java.util.list; Criterios de clase pública La empresa implementa los criterios {@Override Public List <Oll> Mescriteria (List <Oll> Persons) {List <Oll> femalePersons = new ArrayList <Olli> (); para (persona persona: personas) {if (persona.getgender (). Equalsignorecase ("femenino")) {femalepersons.add (persona); }} return femalePersons; }}Criterios singestres.java
import java.util.arrayList; import java.util.list; Criterias de clase pública Inmementa Criterios {@Override Public List <Oll> MesCriteria (List <Oll> Persons) {List <Oll> singlePersons = new ArrayList <Olli> (); para (persona persona: personas) {if (persona.getMaritalStatus (). EqualSignorEcase ("Single")) {singlepersons.add (persona); }} return singlePersons; }}Y criterios.java
import java.util.list; La clase pública y los criterios implementan criterios {criterios de criterios privados; criterios privados otros criterios; Criterios y criterios públicos (criterios, criterios de otros criterios) {this.criteria = criterios; this.OsterCriteria = OtherCriteria; } @Override Public List <Oll> Mescriteria (List <Oll> Persons) {List <Oll> FirstCriteriaPersons = Criteria.MeetCriteria (personas); devolver otroscriterios.meetcriteria (FirstCriteriaPersons); }}Orcriteria.java
import java.util.list; Orcriterios de clase pública implementa criterios {criterios de criterios privados; criterios privados otros criterios; Orcriterios públicos (criterios criterios, criterios de otros criterios) {this.criteria = criterios; this.OsterCriteria = OtherCriteria; } @Override Public List <Oll> Mescriteria (List <Oll> Persons) {List <Oll> FirstCriteriaItems = Criteria.MeetCriteria (personas); Lista <Oll> OTROCRITERIAITEMS = OTROCRITERIA.MEETCRITERIA (Personas); para (persona persona: OTROCRITERIAITEMS) {if (! FirstCriteriaItems.contains (persona)) {FirstCriteriaItems.Add (persona); }} return FirstCriteriaItems; }}Paso 4
Use diferentes criterios (criterios) y su combinación para filtrar listas de objetos de persona.
CriterioPatternDemo.Java
Criteria de clase públicaPatternDemo {public static void main (string [] args) {list <Oll> personas = new ArrayList <Oller> (); Personas.add (nueva persona ("Robert", "hombre", "soltero")); personas.Add (nueva persona ("John", "hombre", "casado")); personas.Add (nueva persona ("Laura", "mujer", "casada")); Personas.add (nueva persona ("Diana", "mujer", "soltera")); Personas.add (nueva persona ("Mike", "hombre", "único")); Personas.add (nueva persona ("Bobby", "hombre", "soltero")); Criterios masculinos = new Criteriamale (); Criterios femenino = nuevo criteriofemale (); Criterios single = new CriteriasLingle (); Criterios singlemale = nuevo y criterios (soltero, hombre); Criterios únicos a un nuevo orcriterios (soltero, femenino); System.out.println ("Machos:"); printpersons (masculino.meetcriterios (personas)); System.out.println ("/nfemales:"); printpersons (femenino.meetcriterios (personas)); System.out.println ("/nsingle machos:"); printpersons (singlemale.meetcriteria (personas)); System.out.println ("/nsingle o hembras:"); printPersons (singleorfemale.meetcriteria (personas)); } public static void printPersons (List <Oll> Persons) {para (Persona Persona: Personas) {System.out.println ("Persona: [Nombre:" + Person.getName () + ", género:" + Person.getGender () + ", estado matrimonial:" + Person.getMaritalStatus () + ")); }}}Paso 5
Verifique la salida.
Hombres: Persona: [Nombre: Robert, Género: Hombre, Estado civil: Single] Persona: [Nombre: John, Género: Macho, Estado matrimonial: Casado] Persona: [Nombre: Mike, Género: Hombre, Estado Marital: Single] Persona: Nombre: Bobby, Género: Hombre, Estado Marital: Single] Females: Persona: Nombre: Laura, Género: Femenina: Estado manquil 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 : Hombre, estado civil: soltero] Persona: [Nombre: Bobby, Género: Hombre, Estado civil: Single] Persona: [Nombre: Laura, Género: Mujer, Estado civil: casado]
Gracias por leer, espero que pueda ayudarte. ¡Gracias por su apoyo para este sitio!