fixxxer
Не надо пытаться сделать один класс на все случаи жизни
Так я как раз и не пытаюсь. Базовый класс без проблем решает 90% задач, возникающих на практике. А на разные случаи жизни придумываются различные обертки вокруг базового класса, которые потом успешно используются впоследствии на других проектах.
За events спасибо. Это работает, я уже проверил
riff, в. Сделал «продвинутый» класс, который умеет еще больше.
г. Сделал «чудесный» класс, который умеет еще больше, и еще сверху.
д. .....
Фотошоп выпускается в одной версии, с сотней плагинов, а не в тысяче версий, с разным набором предустановленных и скомпилированных плагинов. Так и тут. Неправильно, что класс будет уметь вообще все, что ему нужно и не нужно. Ну некошерно как-то...
WMix. Примерно так сейчас все и работает. Перед тем как вызвать Item::delete() программист должен вызвать все необходимые методы. А если забыл, то на диске остаются не удаленные файлы (такая обертка у нас тоже есть)
А дерево... У MP-дерева удалил узел, а InnoDB таблица каскадно удалит потомков, и знать-не-знаю ни про какие индексы... Только с NS-деревьями такая засада, неправильно удалил, индекс не перестроил — убил дерево. Вот я и задумался, как застраховаться от таких фатальных «ой, я забыл метод вызвать».