(Bu soru bağlamında olarak PHP kullanır ama sadece PHP ile sınırlı değildir. Örneğin karma inşa sahip herhangi bir dil de alakalıdır)
Bu örneğe (PHP) bakalım:
function makeAFredUsingAssoc()
{
return array(
'id'=>1337,
'height'=>137,
'name'=>"Green Fred");
}
Karşı:
class Fred
{
public $id;
public $height;
public $name;
public function __construct($id, $height, $name)
{
$this->id = $id;
$this->height = $height;
$this->name = $name;
}
}
function makeAFredUsingValueObject()
{
return new Fred(1337, 137, "Green Fred");
}
Yöntem # 1 ancak kolayca gibi hata neden olabilir, ders terser biridir
$myFred = makeAFredUsingAssoc();
return $myFred['naem']; // notice teh typo here
Tabii ki, bir o $myFred->naem
aynı derecede doğrudur, hangi hata yol açacaktır iddia edebilir. Ancak resmi bir sınıf olan sadece bana daha sert hissediyor, ama gerçekten haklı olamaz.
Ne her yaklaşımı kullanarak artıları / eksileri olacak ve ne zaman insanlar hangi yaklaşımı kullanmak gerekir?