【发布时间】:2017-07-15 11:37:54
【问题描述】:
当以下列方式将比较器应用到列表时,所使用的设计模式或此处使用的技术是什么?
Collections.sort(myCollection, new Comparator<MyItem>() {
@Override
public int compare(MyItem item1, MyItem item2) {
return item1.getId().compareTo(item2.getId());
}
});
【问题讨论】:
-
@AndyTurner 我不认为有任何 design-pattern 被她使用。这是您的常规等级多态性。您共享的链接定义了 Strategy Pattern 的 structure 与 interface 和一些具体实现。
-
@CKing 你能想到一种行为设计模式,它不是“你的常规级多态性在行动”吗?
-
@AndyTurner 设计模式建立在多态性和继承等概念之上。 策略模式 具有明确定义的结构。 Strategy Pattern 和 polymorphism 这两个术语不能互换。
-
@AndyTurner Eric Gamma 在谈到策略模式时说对象组合提供了一种潜在的更可行和更灵活的扩展机制。对象组合是定义策略模式的关键。我希望我能同意不同意,但我不能,因为在 多态性 和策略模式方面存在微妙但明显的区别。模式使用语言提供的基本构建块。它不能与这些块互换。
标签: java oop design-patterns collections polymorphism