我阅读了很多关于设计模式的内容,但我仍然难以确定何时必须使用它们。今天我正在阅读有关 lambda 的 oracle 文档,看到一个类“进化”并说“嘿,显然这里有一些解耦”。我认为这里有一个众所周知的模式,但不知 Prop 体是哪个。
我还有一个问题是,如果我不使用 SPRING,其中关于接口(interface)和实现的文件夹结构非常清晰,这将是 - 根据 goog 实践 - 我必须在其中创建接口(interface)的项目结构。
示例以此代码开始:
public static void printPersonsOlderThan(List<Person> roster, int age) {
for (Person p : roster) {
if (p.getAge() >= age) {
p.printPerson();
}
}
}
然后继续这个:
public static void printPersonsWithinAgeRange(
List<Person> roster, int low, int high) {
for (Person p : roster) {
if (low <= p.getAge() && p.getAge() < high) {
p.printPerson();
}
}
}
最后是这样的:
public static void printPersons(
List<Person> roster, CheckPerson tester) {
for (Person p : roster) {
if (tester.test(p)) {
p.printPerson();
}
}
}
创建了这个界面:
interface CheckPerson {
boolean test(Person p);
}
这是实现:
class CheckPersonEligibleForSelectiveService implements CheckPerson {
public boolean test(Person p) {
return p.gender == Person.Sex.MALE &&
p.getAge() >= 18 &&
p.getAge() <= 25;
}
}
最佳答案
基本上你已经实现了一个filter像 Java FileFilter,这接近 visitor pattern :
Could someone in simple terms explain to me the visitor pattern's purpose with examples if possible
关于java - 这是什么设计模式?打印PersonsOlderThan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43264239/