我想写一个Bounded Priority Queue类.这本质上是一个优先级队列,但是对队列中可以存在的元素数量有一定的限制.因此,如果我插入一个新元素并且队列已满,那么我会看到该元素是否大于队列的顶部.如果是,那么我丢弃新元素.如果不是,那么我删除顶部元素并插入这个新元素(并自动重新组织队列).我目前已经实现了从PriorityQueue派生的BoundedPriorityQueue,它具有"maxCount"成员,我已经覆盖了add方法并添加了我上面描述的功能.我想知道我是否应该考虑使用组合方式而不是继承方式.我目前的做法似乎很简单.
如果我要去编写组合,那么我必须从AbstractQueue类派生,实现这些方法,然后用它组成优先级队列.
谢谢,
Venk
在所描述的情况下,我会选择继承——这是一个典型的例子。您可以(就像我在无法在多个实现之间做出决定时所做的那样)创建两个解决方案,尝试一下,看看它们在 API、性能、实现和理解方面的外观如何,并据此做出决定。
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |