您现在的位置是:主页 > news > ecshop网站返回顶部代码/萧山区seo关键词排名

ecshop网站返回顶部代码/萧山区seo关键词排名

admin2025/5/7 8:01:10news

简介ecshop网站返回顶部代码,萧山区seo关键词排名,江夏区做网站,wordpress栏目改瀑布介绍 允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。 UML 代码实现 public class FilterpatternDemo {public static void main(String[] arg…

ecshop网站返回顶部代码,萧山区seo关键词排名,江夏区做网站,wordpress栏目改瀑布介绍 允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。 UML 代码实现 public class FilterpatternDemo {public static void main(String[] arg…

介绍

      允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。

UML

代码实现 

public class FilterpatternDemo {public static void main(String[] args) {List<Person> persons = new ArrayList<Person>();persons.add(new Person("Robert", "Male", "Single"));persons.add(new Person("John", "Male", "Married"));persons.add(new Person("Laura", "Female", "Married"));persons.add(new Person("Diana", "Female", "Single"));persons.add(new Person("Mike", "Male", "Single"));persons.add(new Person("Bobby", "Male", "Single"));//选择男性Criteria male = new CriteriaMale();//选择女性Criteria female = new CriteriaFemale();//选择单身Criteria single = new CriteriaSingle();System.out.println("Males: ");printPersons(male.meetCriteria(persons));System.out.println("\nFemales: ");printPersons(female.meetCriteria(persons));//过滤出男的 单身Criteria singleMale = new AndCriteria(single, male);System.out.println("\nSingle Males: ");printPersons(singleMale.meetCriteria(persons));//过滤出女的单身Criteria singleOrFemale = new OrCriteria(single, female);System.out.println("\nSingle Or Females: ");printPersons(singleOrFemale.meetCriteria(persons));}public static void printPersons(List<Person> persons) {for (Person person : persons) {System.out.println("Person : [ Name : " + person.getName() + ", Gender : " + person.getGender()+ ", Marital Status : " + person.getMaritalStatus() + " ]");}}
}public interface Criteria {/**过滤*/List<Person> meetCriteria(List<Person> persons);
}/*** 过滤出男性*/
class CriteriaMale implements Criteria {@Overridepublic List<Person> meetCriteria(List<Person> persons) {List<Person> malePersons = new ArrayList<>();for (Person person : persons) {if (person.getGender().equalsIgnoreCase("MALE")) {malePersons.add(person);}}return malePersons;}
}/*** 过滤出女性*/
class CriteriaFemale implements Criteria {@Overridepublic List<Person> meetCriteria(List<Person> persons) {List<Person> femalePersons = new ArrayList<>();for (Person person : persons) {if (person.getGender().equalsIgnoreCase("FEMALE")) {femalePersons.add(person);}}return femalePersons;}
}/*** 过滤出单身*/
class CriteriaSingle implements Criteria {@Overridepublic List<Person> meetCriteria(List<Person> persons) {List<Person> singlePersons = new ArrayList<>();for (Person person : persons) {if (person.getMaritalStatus().equalsIgnoreCase("SINGLE")) {singlePersons.add(person);}}return singlePersons;}
}/*** 过滤器与过滤器之间的关系为 and*/
class AndCriteria implements Criteria {//第一次过滤private final Criteria criteria;//第二次过滤private final Criteria otherCriteria;public AndCriteria(Criteria criteria, Criteria otherCriteria) {this.criteria = criteria;this.otherCriteria = otherCriteria;}@Overridepublic List<Person> meetCriteria(List<Person> persons) {List<Person> firstCriteriaPersons = criteria.meetCriteria(persons);return otherCriteria.meetCriteria(firstCriteriaPersons);}
}/*** 过滤器与过滤器之间的关系为 or*/
class OrCriteria implements Criteria {private final Criteria criteria;private final Criteria otherCriteria;public OrCriteria(Criteria criteria, Criteria otherCriteria) {this.criteria = criteria;this.otherCriteria = otherCriteria;}@Overridepublic List<Person> meetCriteria(List<Person> persons) {List<Person> firstCriteriaItems = criteria.meetCriteria(persons);List<Person> otherCriteriaItems = otherCriteria.meetCriteria(persons);//求并集firstCriteriaItems.addAll(otherCriteriaItems);return firstCriteriaItems;}
}public class Person {private String name;private String gender;private String maritalStatus;public Person(String name, String gender, String maritalStatus) {this.name = name;this.gender = gender;this.maritalStatus = maritalStatus;}public String getName() {return name;}public String getGender() {return gender;}public String getMaritalStatus() {return maritalStatus;}
}