我正在使用面向对象的php构建一个应用程序,我试图保持调用每个对象的主文件尽可能可读和线性,但我有一个需要循环并在多个类中操作的数组。
我想知道在这些情况下最佳做法是什么。我是否应该让每个类循环遍历数组并进行更改,或者首先声明我的所有对象,然后在一个大的(更令人困惑的)循环中同时操作数组。为了便于阅读,让每个对象重新循环都很棒,但这是不好的编码?
Readability? <--> Best practice?
答案 0 :(得分:0)
我们需要在进行任何真正的评估之前查看代码,但总的来说,您的问题听起来并不像您在可读性和最佳实践之间存在冲突。使用单个循环,您可以实现这两个目标。
将数组(实际上只是另一个对象)从各个类中解耦是明智的选择,并且可以干净地完成,而不会产生太多的复杂性。让每个类实现一个接口来处理这个数组的元素,然后使用一个循环将动作推迟到各个类
$objectA = new ObjectA();
$objectB = new ObjectB();
$objectC = new ObjectC();
foreach ( $array as $key => $value ) {
$objectA->doSomething($value, $key, $array);
$objectB->doSomething($value, $key, $array);
$objectC->doSomething($value, $key, $array);
}
在哪里处理数组的各个值。如上所示,您还可以根据需要传递当前键/索引和整个数组以供上下文使用。