Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.31;
Скачать: CL | DM;

Вниз

---|Ветка была без названия|---   Найти похожие ветки 

 
Beginner3000   (2003-07-16 00:32) [0]

Все пишут, что не стоит использовать глобальные переменные,
следует ли из этого, что их надо запихивать в объекты в виде свойств


 
MalkoLinge ©   (2003-07-16 00:56) [1]


> Все пишут, что не стоит использовать глобальные переменные,
> следует ли из этого, что их надо запихивать в объекты в
> виде свойств

Все зависит от задачи. Может следовать а может и нет. Проблема с глобальными переменными - в общем случае теоретическая, ведь инкапсуляция - это особый способ защиты данных. Глобальные вещи этот принцип в принципе нарушают. Хотя для каждой конкретной задачи нужно использовать индивидуальный подход. Проблема с глобальной переменной может возникнуть , например, при многопоточном приложении...но с другой стороны тоже самое будет и при использовании свойств... ИМХО с дядями-теоретиками нужно как с женщинами - очень внимательно и обстоятельно слушать, но делать по-своему


 
Юрий Зотов ©   (2003-07-16 00:58) [2]

Почему? Все диктуется логикой работы программы, здесь не следует жестко придерживаться каких-то строго обязательных догм.

Если переменная по своему логическому смыслу действительно должна быть одна на всю программу - смело делайте ее глобальной. Если же она должна хранить уникальное для каждого объекта значение - делайте ее полем этого объекта. А если при обращении к ней (чтении или записи) должны совершаться какие-то дополнительнве действия - делайте ее свойством и добавляйте к нему методы Get и/или Set.

Но вот "лишних" глобальных переменных старайтесь действительно избегать. Особенно, в секции interface. И особенно когда такая переменная хранит адрес динамически выделенного участка памяти (ссылка на объект, динамический массив и пр.). Потому что такие переменные часто превращаются в потенциальный источник ошибок.


 
Beginner3000   (2003-07-16 01:11) [3]

to Юрий Зотов ©
Но ведь string тоже динамический
не значит ли это, что надо ограничивать строки количеством символов?


 
Юрий Зотов ©   (2003-07-16 01:21) [4]

> Beginner3000 (16.07.03 01:11)

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


 
Beginner3000   (2003-07-16 01:36) [5]

Спасибо
стало как-то спокойнее
остальные мнения буду читать в архиве, если они там будут



Страницы: 1 вся ветка

Текущий архив: 2003.07.31;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
3-100530
Skalp
2003-07-07 14:42
2003.07.31
Блокировка


3-100617
AndrewVolkov
2003-07-09 20:15
2003.07.31
Файл в BLOB и обратно


14-100909
Step[B.M.]
2003-07-10 09:14
2003.07.31
Как отучить XL Report g2 выводить лимит в 255 записей ?


4-101027
Шишкин Илья
2003-05-28 16:42
2003.07.31
Как лучше закрыть чужое приложение?


1-100661
Space
2003-07-15 13:48
2003.07.31
ProgressBar