Re: Что можно делать в конструкторе?
От: Larev  
Дата: 21.12.04 13:18
Оценка: 3 (1)
Здравствуйте, myaso, Вы писали:

M>Всем привет!


M>Сабж. Что тут можно делать, имеется ввиду какие операции тут было бы правильно разместить, а какие нет?

M>Вопрос родился на почве следущей ситуации, есть интерфейс с двумя методами get_count и get_item. Типа коллекции. Элементы коллекции передаются например серез пайп(не суть, с того же файла считываются). То есть, при создании объекта предоставляющего этот интерфейс надо, в случаее пайпа, приконектиться к пайпу, получить данные заполнить коллекцию... Сейчас я это делаю на этапе создания объекта. Тоесть в конструкторе. Это нормально? Это не коверкает какои либо постулаты ООП? Или лучше разместить это сделать при первом вызове например get_count?

В конструкторе не совсем хорошо делать действия, если есть вероятность, что объект будет создан раньше, чем то, с помощью чего объект, например инициализируется (в данном случае пайп). Лучше это вынести за пределы конструктора в кокой-нибудь метод, чтобы контролировать эти действия, поскольку если вы захотите объявить объект (допустим сделать членом класса), то не остается другого способа, как объявить указатель, а потом когда это станет возможно выделить память под объект. А если вынести из конструктора, то не надо об этом заботиться, а вызвать метод в нужный момент.
Короче из всего сказанного, в конструкторе нужно выполнять только те дейтвия, которые не зависят от внешних факторов, условий и возможно не созданных еще объектов.

M>Заранее спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.