首页 > 解决方案 > PHP 类属性:传递 id 还是完整对象?

问题描述

我已经考虑了一段时间并在网上搜索,但我无法找到我即将写下的问题的明确答案。

首先要做的事情是:我想做什么?

我正在尝试使用面向对象的编程对机器(工厂的物理资产)进行建模。简单来说,假设机器只有一个id和一个相关区域。在这个模型中,我有两个类(我省略了这个例子中所有不相关的属性):

在这种情况下,我必须决定如何处理机器类的“区域”属性。就我而言,我对这个属性的选择是:

在第一种情况下,我毫不怀疑在客户端代码中要做什么(实例化一个 Zone 对象并将机器“zone”(id)属性传递给 Zone 对象,以便它可以获取该对象内的区域信息)。

但是如果我选择第二个选项,我对 Machine 类相对于 Zone 类的使用有一些疑问

结论:如果我只需要实例化一个类和区域,我发现第一个选项(仅包含 id 的区域)更好。但是,当我必须处理多个 Zone 和 Machine 实例时,我想将完整的 Zone 对象放在 Machine 类中是一个更明确的选择。

我错了吗?

非常感谢。

标签: phpoopdependency-injection

解决方案


推荐阅读