Какой путь верный?

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Какой путь верный?

Сообщение Хакер » 21.06.2007 (Чт) 6:04

Существует некоторая система (в широком смысле этого слова).

В системе может существовать несколько (от 0 до бесконечности) объектов одного класса.

Всякий объект может либо обслуживаться системой, либо иметь специальный файл, в котором находится код, описывающий поведение объекта.

Каждый объект имеет ряд свойств, в том числе свойство "имя файла" - того самого файла [в котором находится код, описывающий ...].

Если в качестве имени файла указана пустая строка - объект обслуживается системой.

Также система предлагает пользователю специальные средства для настройки (установки "свойств") для каждого объекта, обслуживаемого системой. Для объектов, имеющих свой файл, эти средства настройки вшита в файл и извлекаются при необходимости оттуда.

Вопрос: что должен делать загрузчик объектов, если один из объектов требует файл, который на самом деле не существует.

Варианты:
1) Упасть с ошибкой, в которой будет говорится об отсутсвии файла.
2) Не обращать, добавить в таблицу объектов новую запись, но исполняемый код из файла не подгружать.
3) Не загружать "битый" объект.
4) Удалить сведения о "битом" объекте.

Изначально я хотел делать п.1.

Однако, в таком случае будет невозможно получить доступ к списку всех имеющихся в системе объектов, настроить какой-то из них, поправить "битый" или удалить его.

Вариант 2
- в такой случае можно будет получить список всех объектов и настраивать "здоровые". Но "битый" будет мёртво висеть, и его можно будет только удалить.

К тому же система не будет работать, если вдруг какая-то её часть требует работы битого объекта. А вероятность этого велика.

Вариант 3 - Будет создаваться впечатление что объект отсутсвует в системе. Однако вновь добавить его не получится из-за конфликта с "битым".

Вариант 4 Без комментариев.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 21.06.2007 (Чт) 8:47

3. Исправить конфликт с битым.
Лучший способ понять что-то самому — объяснить это другому.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.06.2007 (Чт) 8:50

Исправить конфликт можно только удалив его. А удалить его в третьем случае нельзя - его не видно.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 83

    TopList