товарищи, что-то вы загоняетесь все и очень глубоко!
вы уж извините, но придираетесь к чему-то чего на самом деле нет!
Цитата(sax_ol @ 16:10:2008 - 16:52)

1 На самом деле "задолго" до конструктора, конструктор это только пользовательская чуть-ли не последняя стадия процесса. Тут все просто - вы же можете обращаться к внутренним полям, вот даже с указателем самого на себя, обращаетесь так жестоко, убиваете с его помощью самого себя на корню. А разве можно убить неродившееся?
2. У созданного обекта есть только одно состояние. Он создан и готов к использованию. я к чему .... не надо путать бизнес логику и физический процесс. Объект создан и все, а уж на сколько он инициализирован по отношению к реальной ситуации для данного момента программы, это совсем другая песня.
sax_ol, ты как понимаю великий и могучий разработчик компиляторов и линкеров, правда на .NET, гы-гы...
нотес не используешь, но постоянно пытаешься доказать, что ты прав, бо ты так делаешь, а так как ты делаешь, то самое правильное решение...
я тебе так отвечу
1) конечно задолго! ты бы еще сравнил это с объявлением обычных переменных и их инициализацию, когда память под них выделяется задолго до использования! понятно, что конструктор - конструкция, которая позволяет программисту выполнить нужные действия для инициализации "бизнес-логики" его объекта, а то, что перед этим в памяти будет занята куча места под поля и т.п. хню, то это работа которая не интересует программиста, пишущего класс.
2) объект либо есть, либо нет, если я могу вернуть nothing вместо объекта, то наверное это что-то невероятное? в любом случае это указывает на то, что объект после создания может иметь множество состояний!
я вообще ничего не путаю, в отличие от тебя, и отвечаю в теме по теме, а ты считаешь, что можешь ходить из темы в тему и доказывать свое одно и то же... удачи!
Цитата(Kee_Keekkenen @ 16:10:2008 - 20:23)

1.если у нас нет данных, то и класс, который должен с этими данными что-то делать не нужен
2.если данные есть, то нужно использовать класс, а раз так, то нужно получить экземпляр класса, проверив был ли он создан ранее или создать новый экземпляр..
ты говоришь так, как будто ты с помощью одного экземпляра класса обрабатываешь все данные, т.е. это объект-конвеер, который обрабатывает сразу все данные...
в том-то и дело, что если класс, который выполняет какие-то действия на данными, получает неверные данные, то он не будет их обрабатывать, соотв. экземпляр его не нужен в данный момент времени с этим набором данных, поэтому мы и не создаем его.
Constantin A Chervonenko привел реальный пример, который повсеместно используется при работе в Notes
другой аналогичный пример:
set NotesDoc = NotesDb.GetDocumentByUNID(docUnid)
if not(NotesDoc is nothing) then
' do somt
end if
если ты используешь подобную конструкцию, то правда ты не будешь заканчивать обработку тысячи документов на пятсот десятом?
ты напишешь обработчик исключения, который позволит тебе выполнить обработку всех данных, а именно:
on error 4091 resume next
...
set NotesDoc = NotesDb.GetDocumentByUNID(docUnid)
if not(NotesDoc is nothing) then
' do somt
end if
в этом случае, мы просто пропустим неправильный унид и обработаем следующий.
зы: ребята, вы вообще нотесом занимаетесь или все .NET? если вы не работаете с нотес, то чего вы даете советы в этом форуме?!!
если вас интересуют глобальные вопросы ООП, создания объектов и т.п. то чего вы сюда пришли? идите на форумы, где это обсуждается!
чего вы тут рассказываете, что мы тут все не правы, потому что используем эти конструкции?!!
Модератор: Ненадо указывать кому в каком форуме быть и про что говорить, и не узнаете дорогу куда вы пойдете. Это понятно? Держите себя в руках!