Ben kişi ve öğrenci iki olan bir uygulama için sınıfları, bir vakıf kurmak istiyoruz. Bir kişi ya da bir öğrenci olmayabilir ve bir öğrencinin her bir kişidir. Bir öğrenci bir kişi "bir" olduğunu gerçeği miras denemek için götürdü, ama ben kişi bir örneğini döndürür bir DAO var ve ben daha sonra belirlemek istiyoruz durumda işe nasıl göremiyorum eğer o kişi Bir öğrenci ve çağrı öğrenci bunun için yöntemler ilgilidir.
class Person {
private $_firstName;
public function isStudent() {
// figure out if this person is a student
return true; // (or false)
}
}
class Student extends Person {
private $_gpa;
public function getGpa() {
// do something to retrieve this student's gpa
return 4.0; // (or whatever it is)
}
}
class SomeDaoThatReturnsPersonInstances {
public function find() {
return new Person();
}
}
$myPerson = SomeDaoThatReturnsPersonInstances::find();
if($myPerson->isStudent()) {
echo 'My person\'s GPA is: ', $myPerson->getGpa();
}
Bu tabii ki çalışmaz, ama bu etkiyi elde etmek için en iyi yolu nedir? Bir kişi öğrenci "a sahip" değildir, çünkü kompozisyon sağ zihnimde sondası değildir. Ben mutlaka bir çözüm aramıyorum ama belki sadece bir terim veya ifade aramak için. Ben yapmaya çalışıyorum ne diyoruz ne gerçekten emin değilim, çünkü ben çok şans olmadı. Teşekkür ederiz!