java扩展或包装类以添加额外的功能

cra*_*man 7 java collections pagination list wrapper

当你想在类中添加一些额外的信息时,你更喜欢哪种方式:你会扩展该类还是围绕它创建一个包装器?

在我的特定场景中,我想添加一些分页信息和List我从数据库中获取的信息.分页信息包括:

int currentPage;
int totalResults;
int containedResultsIndex;
int totalcontainedResults;
Run Code Online (Sandbox Code Playgroud)

和几种方法:

Boolean isNextPageAvailable();
Boolean isPrevPageAvailable();
Run Code Online (Sandbox Code Playgroud)

您的意见,延伸或包装是什么?

Jon*_*ust 9

听起来你问你是否应该在你的情况下支持继承或组合.我会说你没有创建一个新的实现,List你真的不关心如何List实现,所以继承不适合你的问题.相反,您提供分页功能.我将创建一个类,通常使用List或一些其他泛型集合包装(封装)分页逻辑.


Boz*_*zho 4

  • 在您的情况下,包装现有的List并使您的类实现List自身,将所有方法委托给原始列表(例如,在构造函数中传递)
  • 继承并不总是错误的,但在这种情况下,您将不知道要扩展哪个类 - 是ArrayList,还是LinkedList