0

对于没有功能但用于存储数据的类,是否有任何特殊的行话?

4

7 回答 7

5

一个例子是数据传输对象(DTO),当然它仍然可以有方法。

于 2013-05-07T13:45:17.187 回答
3

普通旧数据结构(POD)似乎是一个合适的术语。虽然比POJO / POCO罕见,但据我所知,它似乎最适合您的标准。

于 2013-05-07T13:59:15.457 回答
1

你的意思是这样的吗?

 public class Foo {
     public int a;
     public String b;
 }

我认为在 Java 中没有像这样的(公共)类的特定术语。除了可能是“坏习惯”。

如果您的平台有一个不错的 JIT 编译器,那么没有充分的理由编写这样的代码。至少将字段设为私有并提供 getter 和/或 setter。一个体面的 JIT 编译器将优化简单的 getter 和 setter,从而没有性能开销。

关键是你不应该让这样的代码出现在暴露在单个编译单元之外的 API 中。为什么?它公开了类的实现细节并强制其他代码依赖它们。

如果该类是私有内部类,则上述代码可能是合理的,但如果字段是最终的并且有构造函数,我会更舒服。特别是如果编译单元很大。

于 2013-05-07T13:51:50.387 回答
1

我主要将它们称为容器类。也许您正在寻找的术语,因为它听起来不是很实用。但他们通常有 getter/setter。

实用程序类也是一个不错的术语。存储xyz数据以供bla使用的实用程序类

于 2013-05-07T14:08:43.193 回答
1

C# 没有标准术语,因为这种做法非常罕见。我没有特别好的理由将这些类(或结构)称为“记录”。

于 2013-05-07T13:52:59.380 回答
1

我在这里看到了很多激烈的争吵和高评价的错误答案。所以我会加入我的不完全正确但足够接近的答案。

JavaBean 是Java 中一种特殊的数据封装对象。在 C# 中,我并不完全了解这个名称,但它们确实有一个结构(而不​​是一个类),我习惯于将其用于类似类型的任务。

您可能希望使用的另一个术语是实体。Java 具有“持久性实体”,它们实际上是带有注释的 JavaBean。我的建议是与您选择使用的任何一个保持一致。

如前所述,这不是一个完美的答案,但应该足够接近。

http://en.wikipedia.org/wiki/JavaBeans

http://docs.oracle.com/javaee/5/tutorial/doc/bnbqa.html

http://msdn.microsoft.com/en-us/library/vstudio/ah19swz4.aspx

http://msdn.microsoft.com/en-us/library/system.data.entity(v=vs.103).aspx

于 2013-05-07T14:01:17.400 回答
0

您的问题被标记为 C# 和 Java,但我发现大多数人都理解如果您将它们称为结构(来自 C)。

请注意,在 C++ 中,结构也可能具有函数,但我认为这不是惯用的。

于 2013-05-07T13:53:01.570 回答