从基本链表创建双向链表 (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 变量和方法。
假设我的 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 变量和方法。