假设您有一个经常(甚至独占)用作链表一部分的类。将链接信息放在对象中是否是反模式?
例如:
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/