c# - 对象内的链接是否被视为反模式?

标签 c# java language-agnostic linked-list class-design

假设您有一个经常(甚至独占)用作链表一部分的类。将链接信息放在对象中是否是反模式

例如:

   public class Item
   {
       private Item prev; 
       private Item next;
       ...
   }

一个经常被引用的建议是简单地使用一个通用的容器类(例如 Java 中的 java.util.LinkedList),但这会产生一个单独的节点对象(和链接的)的开销对象不能轻易地引用它的 sibling )。

想法?

最佳答案

它不一定是反模式。反模式必须有负面影响才能获得“反”的权利。

例如,Tree 数据结构中的 Node需要将其链接缓存在 Node 中.任何其他内容都会违反基于对象责任的数据和代码的封装和本地化这一更为重要的概念。

另一方面,嵌入其“下一个”客户的 Customer 数据结构意味着 Customer 数据结构正在处理两个不相关的职责,维护Customer 数据,以及维护Customer 列表数据结构的数据。在这种情况下,这两种职责可能会以影响维护便利性的方式混合在一起;因此,将被视为反模式。

关于c# - 对象内的链接是否被视为反模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6098547/

相关文章:

c# - 如何不断延迟方法的执行

c# - 绘制可逆矩形

c# - C#中richtextbox显示的行数统计

java - 使用java代码下载文件时,文件中的行会跳过换行符

java - 计算除以二的次数

c# - 使用 Socket 和 SSL 的 SMTP 连接

java - 关闭 AutoCloseable 的正确方法

java - 如何使用 Comparator.comparing() 将字符串与 double 进行比较?

algorithm - 最快的整数分解算法是什么?

math - float 学有问题吗?