LINUX.ORG.RU

История изменений

Исправление Kogrom, (текущая версия) :

то есть граф «владения» должен быть ациклическим и приемлемой длины, который можно безопасно обойти рекурсивно.это камень в огород руста и всяких смартпоинтеров.

Это камень не только в огород смартпоинтеров, но к большей части современного программирования, где повсюду наблюдаются «спагетти-данные». И тут проблема даже не в том, что нет современного авторитетного Дейкстры, который бы запретил использовать GOTO в данных. Нет понятной альтернативы.

Я уже говорил в другой теме, что без смартпоинтеров или сборщака мусора проблематично реализовать большинство паттернов GoF. Придумать что-то можно. Например, фабричный метод мог бы не создавать новый объект, а видоизменять передаваемую ему заготовку (изменять её класс, например). Где-то вместо наследования можно было бы использовать варианты. Но в современных языках не очень удобно производить такие действия. Будет громоздко и плохо читаемо.

Исходная версия Kogrom, :

то есть граф «владения» должен быть ациклическим и приемлемой длины, который можно безопасно обойти рекурсивно.это камень в огород руста и всяких смартпоинтеров.

Это камень не только в огород смартпоинтеров, но к большей части современного программирования, где повсюду наблюдаются «спагетти-данные». И тут проблема даже не в том, что нет современного авторитетного Дейстры, который бы запретил использовать GOTO в данных. Нет понятной альтернативы.

Я уже говорил в другой теме, что без смартпоинтеров или сборщака мусора проблематично реализовать большинство паттернов GoF. Придумать что-то можно. Например, фабричный метод мог бы не создавать новый объект, а видоизменять передаваемую ему заготовку (изменять её класс, например). Где-то вместо наследования можно было бы использовать варианты. Но в современных языках не очень удобно производить такие действия. Будет громоздко и плохо читаемо.