【问题标题】:What is "dumb data" and "dumb data object" mean?“哑数据”和“哑数据对象”是什么意思?
【发布时间】:2015-10-05 09:02:54
【问题描述】:

有时我看到有人用“哑数据”或“哑数据对象”来描述某事,但我不清楚“哑数据”的定义。

哑数据是否意味着对象中的某些成员不被对象本身使用,但对于使用该对象的其他成员?

例如:

class Process{
public:
    int parentProcessId;
    //other property
};

int main(){
    Process p1;
    int p1Id=p1.getParentProcessId();
    Process p2=Process.getProcessPyId(p1Id);
    return 0;
};

并且是“哑数据对象”意味着对象中的所有属性仅用于存储值(例如:从sql映射列的对象)?

【问题讨论】:

  • “对象中的所有属性仅用于存储值” - 是的。它是一个数据集合,没有附加行为,除了简单的访问器。也可以是struct
  • 另请参见:What are POD types in C++? Dumb 数据对象是 POD 对象,尽管这些术语并不完全是同义词,因为除了对象之外还有其他 POD。

标签: oop design-patterns language-agnostic dumb-data


【解决方案1】:

如 cmets 中所述,“哑数据对象”是不包含任何行为,仅包含数据的对象。通常也称为Data tranasfer objects (DTO)

它们没有方法或构造函数。

这些对象可以在不同语言之间进行序列化和反序列化,并保留相同的信息。如果它们包含行为,则需要在对象的两种语言表示中创建此行为,因为行为无法序列化,只能使用数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 2011-04-07
    • 1970-01-01
    • 2011-06-23
    • 2010-10-09
    相关资源
    最近更新 更多