Collections.sort() 方法是模板模式还是策略模式?

     在Java.util包中有一个处理集合的工具类Collections,它有一个用来排序的方法sort(),有两个参数,一个是需要排序的集合,另一个是一个Comparator实例。这个方法用的究竟是二十三中经典设计模式中的哪一种,是模板还是策略?我认为是这两者的结合,但偏向于策略。下面从两个角度进行分析:

    说是模板模式。它是把排序算法中的一个步骤拿出来,让用户在外面去实现具体的比较逻辑,是模板模式的典型应用。它不是策略模式,因为,策略模式是要实现不同的算法,把不同的算法放到一个类群里。

    说是策略模式。Comparator可以派生出很多子类,这些子类实现不同的策略,应用到Collections#sort()方法中,实现不同的排序效果。它不是模板模式,因为,模板模式最常见的做法是通过继承来实现抽象的,而这个方法不是靠继承来达到目的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值