Şu anda sonsuz bir yineleme duruma çalıştırıyorum.
Ben gözlemci desen için oldukça benzer .. çeşitli nesne yöntemlerini çağıran bir mesaj servisini uygulayan ediyorum ..
Ne oluyor burada:
Dispatcher.php
class Dispatcher {
...
public function message($name, $method) {
// Find the object based on the name
$object = $this->findObjectByName($name);
if(!$object->decorations))
// Decorate the object
$object = new $name($object); // This is where it locks up.
$object->decorations = true;
}
return $object->$method();
...
}
class A {
function __construct()
{
$Dispatcher->message("B", "getName");
}
public function getName() {
return "Class A";
}
}
class B {
function __construct()
{
// Assume $Dispatcher is the classes
$Dispatcher->message("A", "getName");
}
public function getName() {
return "Class B";
}
}
Ne nesne başlatıldı zaman kilitleniyor. Sadece ileri ve geri birbirinden mesajın gider ve hiç kimse başlatılabilir.
Ben mesajları .. birbirleri için dönüş değerleri yine belirlenen olsun biri beklemek yapacak kuyruk uygulanması çeşit arıyorum. Ben mümkün olduğu kadar A sınıfı ve B sınıfı olarak az klişe kodu için arıyorum.
Ben not_initialized
yöntemi hakkında konuşmak bir sürü alıyorum, ne yazık ki tartışma yanlış yönde gidiyor hissediyorum. Bu benim hatam, ben durum biraz daha anlatacağım (ve daha iyi umarım).
$object
bir dekoratör desen uygular - ki ben mesajlaşma de süslemeler mevcuttur yapılan bu özellikleri kullanmak için gereken A sınıfı ve B sınıfı başlattığınızda $object
daha fazla özellik (yöntemleri) gets olduğunu onun dekore henüz değilse, onu süslemek neden yöntem budur. Gerçekten sanmıyorum not_initialized
sorunu olurdu, çünkü ne zaman söylemek $objectA
henüz dekore değil kontrol edilir - Yani ona bu yöntemleri eklemek istiyorum. Sınıf A ve B dekoratör sınıflardır. Yani not_initialized zaman doğrudur. Ben nesneyi dekore deneyin zaman takılıyor. Ben daha bu durumu yansıtmak için kodu değişti.