或者更具体地说,不依赖 setter 和 getter 是否“可以”?p>
我正在处理一个类,该类检查房间的可用性并设置公共(public)属性,其中有十多个。例如:
- 单位编号
- 房间类型(数组)
- 代码公司
- 代码组
- 数字 child
- 成人人数
- 房间数
- 货币
- 最低利率
- 最大速率
- 肥皂服务器
- 单位(数组)
- 酒店ID
实例化对象后,这些属性将通过 $this->
设置各种方法里面。然而,处理对象的代码通常直接设置公共(public)属性,而不是使用 getter/setter 方法:
$object->something = 3;
foreach ($object->things as $thing ) { }
如果我有时间重构这个类..
- 我是否应该将所有这些属性粘贴在私有(private)属性的数据数组中,并定义
__set
和__get
方法? - 我应该为每个属性创建一个 getter 方法吗?
最佳答案
在我看来,拥有任何公共(public)成员并不是一个好主意。它增加了类之间的耦合,并使重构变得非常复杂(如果您需要的话)。
Setter/Getters 是正确的选择,您为此付出的非常小的性能损失通常要么被优化掉,要么被优雅所压倒。
要回答关于数组与每个变量单一 getter 的问题,这是一个品味问题。我倾向于只将类似类型的变量保留在数组中,并将其余变量分开。
关于php - 在一个类中拥有相当数量的公共(public)属性是否合理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2225065/