c# - 对象应该有多详细?

标签 c# oop

我正在开发一种 HMI 应用程序,正在创建对象来定义特定机器。为了争论起见,假设这是一辆汽车。

引擎的对象是显而易见的。引擎上有一些常见的传感器,这是一些安装到引擎对象上的一些属性的对象。 throttle 属性当然是一个输入。

这辆车至少有一扇门。每扇门都可以有一个 window ,可以打开,也可以电动操作。如果它是电动的,它将依赖于汽车的动力来运行。

现在,我应该将门公开为汽车对象的属性,还是将其保密并让汽车对象在 OpenDoor 和 RollDownWindow 函数中操作门是最明智的做法?事件呢?我应该公开引擎上的事件,例如 LowOnOil 事件,还是应该在汽车对象中处理它,而反过来可能会有像 EngineIsLowOnOil 这样的事件?

你会怎么做?

最佳答案

这个问题以及所有类似的问题都可以通过考虑构建模型的原因来回答。与您要解决的问题隔离开来创建模型绝对没有意义,而且通常不可能这样做。

例如,如果您正在构建电子燃油喷射控制系统,则汽车上的车门数量(甚至可能是汽车本身)没有意义,因此不应建模。

关于c# - 对象应该有多详细?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1880720/

相关文章:

c# - 将 %SystemDrive% 转换为盘符

java - 跳过父构造函数调用祖 parent 的

swift 虚拟运营商?

python - 从 Component 类访问 Composite 类字段

java - 如何强制子类重新定义 Java 中的常量?

python - 相等对象的重复

c# - 为什么是 "no elements matching the key were found in the configuration element collection"?

c# 如何枚举不同域中的 DC

c# - 设置最大内存使用 C#

c# - 以编程方式将数据添加到类型化数据集