【发布时间】:2026-02-15 09:30:02
【问题描述】:
在Active Record vs ObjectsBob Martin 的文章中指出:
- 对象隐藏数据并暴露行为
- 数据结构暴露数据并且没有行为
然后他继续说
在 C++ 和 C# 等语言中,struct 关键字用于描述 具有公共字段的数据结构。
在我看来,他似乎将数据结构用作 struct 的同义词,并说我们应该将 struct 关键字用于数据,将 class 关键字用于实现具有行为的对象。这听起来很奇怪,因为mutable structs are evil 和大多数系统中的数据都需要更改(这意味着大多数数据都是邪恶的)。
有人能指出我推理中的缺陷吗?
【问题讨论】:
-
我认为“你的推理没有缺陷”;面向对象的设计决策和约定不是保证良好设计的“事实”。这个主题似乎也有点基于意见。所有的设计理念都以一件事换另一件事。
标签: c#