例如jdk中的Comparable與Comparator,按鈕的事件處理addActionListener(new ActionLitener() {...});
在實(shí)用工具Arrays.sort()中,需要進(jìn)行排序的對(duì)象實(shí)現(xiàn)了Comparable接口,或者傳入一個(gè)Comparator接口的比較實(shí)現(xiàn)。如果對(duì)象只實(shí)現(xiàn)了Comparable接口,那么他的比較方式只有一種,而如果排序使用的是給sort()傳Comparator接口的實(shí)現(xiàn),就可以實(shí)現(xiàn)多種不同的比較排序方式。正因?yàn)樵诖耍捎诒容^時(shí)不同的要求,而傳入不同的Comparator的實(shí)現(xiàn),實(shí)現(xiàn)了不同的排序方式(實(shí)現(xiàn)Comparable接口只有一種比較方式),即使用了不同的策略。像按鈕的事件處理,都只需要一個(gè)提供一個(gè)實(shí)現(xiàn)了ActionListener接口的類(lèi)的對(duì)象,方式都是同一個(gè),但由于不同的應(yīng)用,提供了不同的事件處理實(shí)現(xiàn),實(shí)現(xiàn)了不同的功能,提供了不同的策略。