从基本链表创建双向链表 (DLL) - 组合还是继承?

Creating doubly linked list(DLL) from a basic linked list-Composition or inheritance?

假设我的 BasicLinkedList(BLL) 具有以下基本方法:

-insert at the head, tail, anywhere
-delete at the head, tail, anywhere

我想知道我是否应该使用组合或继承从 BLL 创建我的 DLL。

我的想法过程:

我的猜测是阅读 Effective Java 项目 #18(第 3 版):有利于组合而不是继承

但是这里的组合感觉不对,因为我不知道如何将指向前一个节点的指针与委托结合起来。

然后我阅读了Liskov substitution Principle(LSP),似乎继承是正确的选择?但我不确定。


问题(总结): 我应该使用 组合还是继承 从 BLL 创建我的 DLL?为什么?

“重组合胜过继承”并不意味着你不应该使用继承,而且继承总是不好的。在这种特殊情况下,您最好使用继承来访问必要的 class 变量和方法。