Java 필터 모드 (필터/기준 패턴)
필터 패턴 또는 기준 패턴 패턴은 개발자가 다른 표준을 사용하여 객체 그룹을 필터링하고 논리적 작업을 통해 분리 된 방식으로 연결할 수있는 설계 패턴입니다. 이 유형의 설계 패턴은 구조 패턴으로 여러 표준을 결합하여 단일 표준을 얻습니다.
필터 패턴 또는 기준 패턴 패턴은 개발자가 다른 표준을 사용하여 객체 그룹을 필터링하고 논리적 작업을 통해 분리 된 방식으로 연결할 수있는 설계 패턴입니다. 이 유형의 설계 패턴은 구조 패턴으로 여러 표준을 결합하여 단일 표준을 얻습니다.
성취하다
개인 객체, 기준 인터페이스 및 개인 개체 목록을 필터링하기 위해 인터페이스를 구현하는 개인 객체, 기준 인터페이스 및 엔티티 클래스를 생성합니다. CriteriaPatternDemo, 당사의 데모 클래스는 기준 객체를 사용하여 다양한 표준 및 조합을 기반으로 사람 객체 목록을 필터링합니다.
1 단계
해당 클래스에 표준을 적용 할 수있는 클래스를 만듭니다.
사람. 자바
공개 클래스 사람 {개인 문자열 이름; 개인 문자열 성별; 개인 문자열 Maritalstatus; 공개 사람 (문자열 이름, 문자열 성별, 문자열 MaritalStatus) {this.name = 이름; this.gender = 성별; this.maritalstatus = Maritalstatus; } public String getName () {return name; } public String getGender () {return gender; } public String getMaritalStatus () {return MaritalStatus; }}2 단계
기준에 대한 인터페이스를 만듭니다.
Criteria.java
Java.util.list 가져 오기; 공개 인터페이스 기준 {public list <person> meetcritria (list <person> persons);}3 단계
기준 인터페이스를 구현하는 엔티티 클래스를 만듭니다.
CRITERIAMAE.JAVA
import java.util.arraylist; import java.util.list; 공개 클래스 기준은 기준을 구현합니다 {@override public list <person> meetcriteria (list <person> persons) {list <person> malepersons = new arraylist <person> (); for (person : persons) {if (person.getgender (). equalsignorecase ( "male")) {malepersons.add (person); }} 리턴 Malepersons; }}CRITERIAFEMALE.JAVA
import java.util.arraylist; import java.util.list; 공개 클래스 기준 {@override public list <person> meetcritria (list <person> persons) {list <person> femalepersons = new arraylist <person> (); for (person : persons) {if (person.getgender (). equalsignorecase ( "female")) {femalepersons.add (person); }} return femalepersons; }}Criteriasingle.java
import java.util.arraylist; import java.util.list; 공개 클래스 기준 징수는 기준 {@override public list <person> meetcriteria (list <person> persons) {list <person> singlepersons = new arraylist <person> (); for (person : persons) {if (person.getMaritalStatus (). equalSignoreCase ( "Single")) {SinglePersons.Add (person); }} 싱글 퍼슨을 반환합니다. }}andcriteria.java
Java.util.list 가져 오기; 공개 클래스 및 기준은 기준을 구현 {개인 기준 기준; 개인 기준 기타 기업; 공개 및 기준 (기준 기준, 기준 기타 기준) {this.criteria = 기준; this.othercriteria = 기타 기준; } @override public list <person> meetcriteria (list <person> persons) {list <person> FirstCriteriaPersons = criteria.MeetCriteria (persons); Othercriteria.MeetCriteria (FirstCriteriaPersons)를 반환합니다. }}orcriteria.java
Java.util.list 가져 오기; 공개 클래스 또는 기준은 기준을 구현 {개인 기준 기준; 개인 기준 기타 기업; 공개 또는 기준 (기준 기준, 기준 기타 기준) {this.criteria = 기준; this.othercriteria = 기타 기준; } @override public list <person> meetcriteria (list <person> persons) {list <person> firstcriteriaitems = criteria.meetcriteria (persons); 목록 <person> 기타 CriteriaItems = Othercriteria.MeetCriteria (개인); for (person : othercriteriatems) {if (! firstcriteriatems.contains (person)) {firstcriteriatems.add (person); }} return firstCriteriaItems; }}4 단계
다른 기준 (기준)과 해당 조합을 사용하여 사람 객체의 목록을 필터링하십시오.
CRITERIAPATTERNDEMO.java
공개 클래스 기준 {public static void main (String [] args) {list <person> persons = new Arraylist <person> (); persons.add (새로운 사람 ( "Robert", "Male", "Single")); persons.add (새로운 사람 ( "존", "남성", "결혼")); persons.add (새로운 사람 ( "Laura", "Female", "Wind")); persons.add (새로운 사람 ( "Diana", "Female", "Single")); persons.add (새로운 사람 ( "Mike", "Male", "Single")); persons.add (새로운 사람 ( "Bobby", "Male", "Single")); 기준 남성 = 새로운 기준 (); 기준 여성 = 새로운 기준 (); 기준 단일 = 새로운 기준 (); 기준 Singlemale = New andCriteria (단일, 남성); 기준 Singleorfemale = 새로운 Orcriteria (단일, 여성); System.out.println ( "남성 :"); printpersons (male.meetcriteria (persons)); System.out.println ( "/nfemales :"); printpersons (여성 .meetcriteria (persons)); System.out.println ( "/nsingle males :"); PrintPersons (SingleMale.MeetCriteria (Persons)); System.out.println ( "/nsingle 또는 여성 :"); printpersons (Singleorfemale.MeetCriteria (persons)); } public static void printpersons (list <person> persons) {for (person : persons) {system.out.println ( "person : [name :" + person.getname () + ", 성별 :" + person.getgender () + ", 결혼 상태 :" + person.getmaritalstatus () + "]; }}}5 단계
출력을 확인하십시오.
남성 : [이름 : 로버트, 성별 : 남성, 결혼 상태 : 독신] : [이름 : John : John, 성별 : 남성, 결혼 상태 : 결혼] 사람 : [이름 : Mike, 성별 : 남성, 결혼 상태 : 독신] : [이름 : Bobby, Gender : 남성, 결혼 상태 : [이름 : 여성, 결혼 상태 : 결혼 한 사람 : [이름 :] 사람 :] : 사람 : [이름 : 로버트, 성별 : 남성, 결혼 상태 : 독신] : [이름 : 마이크, 성별 : 남성, 결혼 상태 : 독신] 사람 : [이름 : 바비, 성별 : 남성, 결혼 상태 : 싱글] 독신 또는 여성 : [이름 : Robert, Gender : Male : Single] : [이름 : Diana, Gender : gender : gender : galder : galder : galder : galder : [이름 : 싱글, 성별 : 남성, 결혼 상태 : 독신] : [이름 : 바비, 성별 : 남성, 결혼 상태 : 독신] : [이름 : Laura, 성별 : 여성, 결혼 상태 : 결혼]
읽어 주셔서 감사합니다. 도움이되기를 바랍니다. 이 사이트를 지원 해주셔서 감사합니다!