Если бы мы не придумывали себе проблемы, жизнь была бы несколько более скучной, ты не находишь?Ты пытаешься решить какие-то проблемы, которые сам себе придумал.
Не "абстракция для различных небесных тел" а "общая логика объекта". Наличие/отсутствие атмосферы, жидкости, твёрдой поверхности, количество зон поверхности, формат названия объекта при выводе, это только то, что сейчас могу вспомнить.Зачем нужна абстракция для различных небесных тел?
Не предка, а объект, вокруг которого расположена орбита этого объекта.Зачем нужен setParent()? Зачем нужна ссылка на предка в принципе?
От прямого наследования я отказался, спасибо вашим подсказкам.Коротко говоря, если некоторый контейнер G используется и для записи, и для чтения, то G, параметризованный одним типом, никак не может наследовать контейнеру G, параметризованному другим типом
Надо разобрать входной поток данных (три формата, машинный, полумашинный, человеческий), делать конвертацию между ними, перебирать их в обоих направлениях, делать простые операции, типа ::count(), ::format($someformat).опишите общую задачу, которую Вы, лично Вы, решаете посредством такого подхода, вероятно, Вам укажут на более состоятельный вариант.
class Solarsystem {
public function __construct($name, $parent = null) {
$this->parent = $parent;
$this->children = new Collection('IPlanet'); // в коллекцию добавим тип
}
}
$solar = new Solarsystem();
$solar->children->add(new Planet('Mars', $solar));
$solar->children->count();
$solar->children->first()->parent;
Ну тогда и передавай в конструктор объект, на орбите которого расположен конструируемый. И интерфейс соответствующий, с соответствующими методами - ведь это Земля знает, как вокруг нее Луна будет вращаться. И так далее рекурсивно.Не предка, а объект, вокруг которого расположена орбита этого объекта.
от массы(гравитации) каждого и расстоянияедь это Земля знает, как вокруг нее Луна будет вращаться.
ну так необязательно же это единое тело - вон я привел пример с бинари старот массы(гравитации) каждого и расстояния
хотя с gl точки зрения ты прав
если нету - как орбиту считать? короче давай реальную задачу, а то какая-то угадайка@AmdY, код понял, выйдя за дверьРазделить объект логики и коллекцию подчинённых объектов, да, это логично.
@fixxxer, у меня может не быть этого парента, даже если логически он быть должен (прислали скан отдельно планеты, например.) Как быть в этом случае?
По поводу "бинари", тут всё легче, слава богу, в механике нет таких заумных вещей, как барицентр, всегда есть главная звезда, всё остальное крутится вокруг неё.
Отлично.Надо разобрать входной поток данных
(Александр Степанов)Тоже самое и с программированием: сначала вы должны начинать развивать алгоритмы, и только в конце этой работы приходите к тому, что вы в состоянии сформулировать четкие и непротиворечивые интерфейсы.
Можно изобразить массивом, можно использовать классы как структуры.Ну, э… В ПХП нет такого отдельного понятия как "структура данных"… Нет же ж?…
То есть, описанная вами выше задача уже решена."Конечный автомат" написан три года назад.
?работать именно с объектами как со структурой