作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我阅读了很多关于设计模式的内容,但我仍然难以确定何时必须使用它们。今天我正在阅读有关 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/
我是一名优秀的程序员,十分优秀!