【发布时间】:2008-10-01 08:29:08
【问题描述】:
这是一个有很多答案的问题 - 我很想知道其他人认为什么是“最佳实践”。
考虑以下情况:您有一个面向对象的程序,其中包含许多不同类所需的一个或多个数据结构。您如何使这些数据结构可访问?
您可以显式传递引用,例如,在构造函数中。这是“正确”的解决方案,但这意味着在整个程序中复制参数和实例变量。这使得更改或添加全局数据变得困难。
您可以将所有数据结构放在一个对象中,并传递对该对象的引用。这可以是为此目的而创建的对象,也可以是程序的“主要”对象。这简化了 (1) 的问题,但数据结构之间可能有任何关系,也可能没有任何关系,将它们集中在一个对象中是相当随意的。
您可以将数据结构设为“静态”。这使您可以直接从其他类引用它们,而无需传递引用。这完全避免了(1)的缺点,但显然不是OO。这也意味着程序只能有一个实例。
当有很多数据结构,很多类都需要时,我倾向于使用(2)。这是 OO 纯度和实用性之间的折衷。其他人做什么? (不管怎样,我主要来自 Java 世界,但这个讨论适用于任何 OO 语言。)
【问题讨论】:
标签: oop