powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Красивая работа с константами
12 сообщений из 12, страница 1 из 1
Красивая работа с константами
    #39525952
kaktus1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю ревью старого кода, и задался мыслю как сделать более красиво.

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

Вопрос: как бы вы поступили далее, оставили так или сформировали классы со статическими переменными или свойствами..?
И каков механизм вызова стат. свойств?

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
// константы
TProp = class
...
class property A...
...

TApp = class
 Prop : TProp;
...

// Как Обратится к свойству А, если экземпляр класса TProp не создавался
App : TApp;
...
App := TApp.Create;
App.Prop.A //?
...
Рейтинг: 0 / 0
Красивая работа с константами
    #39525955
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TProp.A

хотя лично мне class properties не попадались на пути.
...
Рейтинг: 0 / 0
Красивая работа с константами
    #39525958
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нравится так

http://www.sql.ru/forum/1166149/sgruppirovat-konstanty-record-vs-class-i-est-li-raznica

но это если константы глобальные. Единственный минус - при обращении снаружи CodeCompletion (по крайней мере на XE3) перестает их воспринимать.

Но глобальные константы нужны редко. Я в большинстве случаев обхожусь константами, объявленных в самом классе
...
Рейтинг: 0 / 0
Красивая работа с константами
    #39525966
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaktus1983Суть вопроса. В проекте задается большое количество констант, в том числе и многомерных массивов, которые описывают конструктивные особенности некого большого объекта. Все константы в текущем варианте вынесены в отдельный модуль и используются прямым обращением из различных частей проекта.

Наверное это правильно, если особенности описаны в одном месте - всегда знаешь, где искать.
...
Рейтинг: 0 / 0
Красивая работа с константами
    #39525970
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schiНаверное это правильно, если особенности описаны в одном месте - всегда знаешь, где искать.Зависит.

Пример: константы для вычисления CRC32. Напомню, там 256 4-байтовых значений. Зачем их хранить в общем глобальном модуле?
...
Рейтинг: 0 / 0
Красивая работа с константами
    #39525980
kaktus1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vizit0rTProp.A

хотя лично мне class properties не попадались на пути.

Так понятно. А если через App ?
App.TProp.A...
Не знаю как даже написать))
...
Рейтинг: 0 / 0
Красивая работа с константами
    #39525994
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_schiНаверное это правильно, если особенности описаны в одном месте - всегда знаешь, где искать.Зависит.

Пример: константы для вычисления CRC32. Напомню, там 256 4-байтовых значений. Зачем их хранить в общем глобальном модуле?

Видимо кто-то из нас невнимательно читает фразу "В проекте задается большое количество констант, которые описывают конструктивные особенности некого большого объекта".
Я не считаю, что константы для вычисления СRC32 как-то относятся к конструктивным особенностям некоего объекта.
...
Рейтинг: 0 / 0
Красивая работа с константами
    #39526004
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если константы по смыслу относятся к определенному классу и в нем же используются - то логично в этом классе их и объявить
...
Рейтинг: 0 / 0
Красивая работа с константами
    #39526116
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделайте класс/объект, где есть имя константы и значение(вариантовое). Можно добавить служебных полей.
Там можно разместить буквально все. Даже файлы, иконки, звуки и пр.
Обращаться по имени. Можно загружать значения по мере необходимости, н-р из БД, файла и пр.
Примерно так сделано в новых версиях Эхлиб. Удобно.
...
Рейтинг: 0 / 0
Красивая работа с константами
    #39526124
kaktus1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, варианты понял!

LSVСделайте класс/объект, где есть имя константы и значение(вариантовое). Можно добавить служебных полей.
Там можно разместить буквально все. Даже файлы, иконки, звуки и пр.
Обращаться по имени. Можно загружать значения по мере необходимости, н-р из БД, файла и пр.
Примерно так сделано в новых версиях Эхлиб. Удобно.

Эхлиб посмотрю, спасибо.
...
Рейтинг: 0 / 0
Красивая работа с константами
    #39526146
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaktus1983Вопрос: как бы вы поступили далее, оставили так или сформировали классы со статическими переменными или свойствами..?
Например, так
Особенно, если константы требуется использовать ещё где-то.
...
Рейтинг: 0 / 0
Красивая работа с константами
    #39526166
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaktus1983,

это у тебя уже не константы получаются, а глобальные переменные
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Красивая работа с константами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]