|
|
|
Красивая работа с константами
|
|||
|---|---|---|---|
|
#18+
Делаю ревью старого кода, и задался мыслю как сделать более красиво. Суть вопроса. В проекте задается большое количество констант, в том числе и многомерных массивов, которые описывают конструктивные особенности некого большого объекта. Все константы в текущем варианте вынесены в отдельный модуль и используются прямым обращением из различных частей проекта. Во время ревью произвел разбивку констант на группы, но оставил все в одном модуле. Вопрос: как бы вы поступили далее, оставили так или сформировали классы со статическими переменными или свойствами..? И каков механизм вызова стат. свойств? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 18:10:24 |
|
||
|
Красивая работа с константами
|
|||
|---|---|---|---|
|
#18+
TProp.A хотя лично мне class properties не попадались на пути. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 18:18:25 |
|
||
|
Красивая работа с константами
|
|||
|---|---|---|---|
|
#18+
Мне нравится так http://www.sql.ru/forum/1166149/sgruppirovat-konstanty-record-vs-class-i-est-li-raznica но это если константы глобальные. Единственный минус - при обращении снаружи CodeCompletion (по крайней мере на XE3) перестает их воспринимать. Но глобальные константы нужны редко. Я в большинстве случаев обхожусь константами, объявленных в самом классе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 18:27:55 |
|
||
|
Красивая работа с константами
|
|||
|---|---|---|---|
|
#18+
kaktus1983Суть вопроса. В проекте задается большое количество констант, в том числе и многомерных массивов, которые описывают конструктивные особенности некого большого объекта. Все константы в текущем варианте вынесены в отдельный модуль и используются прямым обращением из различных частей проекта. Наверное это правильно, если особенности описаны в одном месте - всегда знаешь, где искать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 18:50:02 |
|
||
|
Красивая работа с константами
|
|||
|---|---|---|---|
|
#18+
schiНаверное это правильно, если особенности описаны в одном месте - всегда знаешь, где искать.Зависит. Пример: константы для вычисления CRC32. Напомню, там 256 4-байтовых значений. Зачем их хранить в общем глобальном модуле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 19:01:20 |
|
||
|
Красивая работа с константами
|
|||
|---|---|---|---|
|
#18+
Vizit0rTProp.A хотя лично мне class properties не попадались на пути. Так понятно. А если через App ? App.TProp.A... Не знаю как даже написать)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 19:48:54 |
|
||
|
Красивая работа с константами
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_schiНаверное это правильно, если особенности описаны в одном месте - всегда знаешь, где искать.Зависит. Пример: константы для вычисления CRC32. Напомню, там 256 4-байтовых значений. Зачем их хранить в общем глобальном модуле? Видимо кто-то из нас невнимательно читает фразу "В проекте задается большое количество констант, которые описывают конструктивные особенности некого большого объекта". Я не считаю, что константы для вычисления СRC32 как-то относятся к конструктивным особенностям некоего объекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 20:55:45 |
|
||
|
Красивая работа с константами
|
|||
|---|---|---|---|
|
#18+
Если константы по смыслу относятся к определенному классу и в нем же используются - то логично в этом классе их и объявить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 21:50:22 |
|
||
|
Красивая работа с константами
|
|||
|---|---|---|---|
|
#18+
Сделайте класс/объект, где есть имя константы и значение(вариантовое). Можно добавить служебных полей. Там можно разместить буквально все. Даже файлы, иконки, звуки и пр. Обращаться по имени. Можно загружать значения по мере необходимости, н-р из БД, файла и пр. Примерно так сделано в новых версиях Эхлиб. Удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 09:29:39 |
|
||
|
Красивая работа с константами
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, варианты понял! LSVСделайте класс/объект, где есть имя константы и значение(вариантовое). Можно добавить служебных полей. Там можно разместить буквально все. Даже файлы, иконки, звуки и пр. Обращаться по имени. Можно загружать значения по мере необходимости, н-р из БД, файла и пр. Примерно так сделано в новых версиях Эхлиб. Удобно. Эхлиб посмотрю, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 09:37:56 |
|
||
|
Красивая работа с константами
|
|||
|---|---|---|---|
|
#18+
kaktus1983Вопрос: как бы вы поступили далее, оставили так или сформировали классы со статическими переменными или свойствами..? Например, так Особенно, если константы требуется использовать ещё где-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 10:08:05 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39526124&tid=2041802]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
429ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 210ms |
| total: | 726ms |

| 0 / 0 |
