Один родительский объект для нескольких дочерних объектов - PullRequest
0 голосов
/ 03 декабря 2009

Возможно ли иметь один родительский объект для более чем одного дочернего объекта, чтобы все дочерние объекты могли иметь одно и то же родительское состояние?

Ответы [ 4 ]

1 голос
/ 03 декабря 2009

Если ваш класс Child наследуется от Parent, тогда Child isA Parent. Если вы создаете двух дочерних элементов, то они являются отдельными объектами, а их родительские «части» - отдельными. Это не тот эффект, который вы просите.

Я предполагаю, что вам нужен такой сценарий, что может быть несколько семей. Есть Родитель (назовите его Фред, 72 года) и Родитель (назовите ее Джун, 45 лет)

У Фреда есть дети F1, F2, F3, у Джун есть дети J1, J2.

Все дети Фреда имеют возраст 72 года, 45 июня, и когда мы отмечаем день рождения Фреда, все его дети автоматически достигают 73 лет.

Итак, мы смоделируем это с помощью отношения hasA .

Child { 
     Parent myParent;  // points to Fred or June, or whoever
     int getAge() { return myParent.getAge(); }
}

Обратите внимание, что в итоге мы делегируем нашему родителю, что немного сложнее, чем использование наследования, но, вероятно, вам нужно.

0 голосов
/ 27 февраля 2013

IMO: для PHP это возможно только в качестве симуляции. Сам язык не позволяет этого.

0 голосов
/ 03 декабря 2009

Шаблон Flyweight может вам помочь. Или нет. Для более конкретного ответа, пожалуйста, сделайте ваш вопрос более точным, лучше всего будет описание вашего фактического варианта использования.

0 голосов
/ 03 декабря 2009

Да, это возможно. У меня есть класс ArrayList для этого, ArrayList на самом деле является обычным массивом, но я разрешаю только объекты в нем.

Взгляните на класс ArrayList от Microsoft, мой основан на этом.

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