MyClass
有一个反弹的字段,其中每个值取决于另一个实例值,最后,在一个DependencyClass
. 一个非常简单的例子:
解决方案 A(使用构造函数)
public class MyClass
{
private $myField1, $myField2;
public function MyClass(DependencyClass $dependency)
{
$value = $dependency->getValue();
$value++; // Computations on dependency value
$this->myField1 = $value + 3;
$this->myField2 = $value - 1;
}
public function getMyField1()
{
return $this->myField1;
}
public function getMyField2()
{
return $this->myField2;
}
}
我的问题是,类构造函数是我应该放置这个计算逻辑的正确位置吗?或者更适合做一些代码重复,例如:
解决方案 B(仅用于依赖的构造函数)
public class MyClass
{
private $dependency;
public function MyClass(DependencyClass $dependency)
{
$this->dependency= $dependency
}
public function getMyField1()
{
$value = $this->dependecy->getValue();
$value++; // Computations on dependency value
return $value + 3;
}
public function getMyField2()
{
$value = $this->dependecy->getValue();
$value++; // Computations on dependency value
return $value - 1;
}
}
或MyClass
仅制作一个容器和用户一个外部汇编程序类,如:
解决方案 C(外部汇编程序)
Class Assembler
{
public getMyClass()
{
$dependency = new Dependency();
$value = $dependency->getValue();
$value++; // Computations on dependency value
$myClass = new MyClass();
$myClass->setMyField1($value + 3);
$myClass->setMyField2($value - 1);
return $myClass;
}
}