Существует ли своего рода шаблон проектирования ООП «Хрустальный шар»? - PullRequest
1 голос
/ 13 февраля 2010

Что касается шаблонов проектирования, таких как GoF, существует ли шаблон для описания, когда одному объекту необходимо наблюдать другой объект, который еще даже не существует?

т.е.

$crystalBall = new crystalBall();
$futureDependent = new FutureDependent();
$futureDependent->attach($crystalBall);

...

then much later
....

$importantObject = new ImportantObject()
$crystalBall->sendToFutureDependent($importantObject);

......
then later again


$strawberriesAndCreamMmmmmLovely = $futureDependent->doStuffWithImportantObject();

Это похоже на наблюдателя в обратном направлении. Но отличается тем, что наблюдатель получает уведомление о событиях.

было так, как этот просто хочет ссылку на него при его создании.

Есть идеи?


Обновление - после комментирования ответа Chacha102 я понимаю ... Crystal Ball - это Реестр ... ему помогло сказать слова ... "трудно достать"

Ответы [ 2 ]

0 голосов
/ 07 ноября 2010

Самое близкое, что я могу вспомнить, это Reflection, где вы можете «проанализировать» класс и, возможно, создать новый, основываясь на том, что вы нашли с помощью клона.

http://php.net/manual/en/book.reflection.php

В противном случае существует «экспериментальная» агрегация объектов, которая сейчас не очень полезна.

http://www.php.net/manual/en/ref.objaggregation.php

0 голосов
/ 07 ноября 2010

Я только что наткнулся на концепцию «будущего» * ​​1001 *

См: * http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Future.html

Interface Future<V>

Type Parameters:
    V - The result type returned by this Future's get method

...

Как обсуждено / упомянуто:

Не уверен, что это шаблон, как таковой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...