这更像是一个最佳实践问题。
假设我有一个表格:
<form action="self.php" method="POST">
<input type="text" name="aA" />
<input type="text" name="aB" />
<input type="text" name="aC" />
</form>
以及 PHP 中的相应类:
class A
{
public function getA(){
return $this->a;
}
public function setA($a){
$this->a = $a;
}
public function getB(){
return $this->b;
}
public function setB($b){
$this->b = $b;
}
public function getC(){
return $this->c;
}
public function setC($c){
$this->c = $c;
}
private $a;
private $b;
private $c;
}
不知何故,我设法从表单中发送数据。现在,我需要将表单数据转换为 A 的实例。
我目前正在做的事情如下:
abstract class AStrategy {
public function doMapping(){
$a = new A();
if (isset($_POST['aA']) === true) {
$a->setA($_POST['aA']);
}
... (same for b and c)
return $a; //A completely mapped object
}
}
而且我非常清楚这是非常糟糕的做法(违反 DRY)。
- 这样做的最佳做法是什么?
- 如果我有一个复杂的对象树怎么办?如果我需要同时映射相关对象怎么办?
- 谁应该做映射?谁应该创建对象等?
事先谢谢你。