|
![]() |
#1 |
Участник
|
итак, плюсы/минусы реализаций:
1. выделить одно из значений как null. например, использовать не перечисление NoYes, а перечисление из 3х значений - NoYesNull 1.1. плюсы: 1.1.1. очень компактно и просто, 1.1.2. легко сериализируется, 1.1.3. легко встраивается в pack/unpack 1.1.4. полный контроль типов со стороны IDE 1.2. минусы: 1.2.1. не всегда это можно сделать. см. пример с хранением контрольной суммы. 1.2.2. нужны функции-преобразователи, чтобы преобразовать к интерфейсному типу. для данного примера: чтобы спросить у пользователя привычную галочку, нужен преобразователь NoYesNull <-> NoYes. Причем Null значение преобрауется в control.enabled(false). или в control.visible(false) 1.2.3. обработка Null-значения будет раскидана по всему коду 2. объявлять/хранить как два независимые поля (две независимые переменные) 2.1.плюсы: 2.1.2. легко сериализируется, 2.1.3. легко встраивается в pack/unpack 2.1.4. полный контроль типов со стороны IDE 2.2.минусы: 2.2.1. громоздко - передавать эту пару в методы - забибикаешься. 3. объявлять как контейнер 3.1. плюсы: 3.1.1. очень компактно и просто, 3.1.2. легко сериализируется, 3.1.3. легко встраивается в pack/unpack 3.2. минусы: 3.2.1. никакого контроля типов. 3.2.2. все ошибки в runtime 3. создать класс (что-то вроде tuple) 3.1. плюсы 3.1.1. контроль типов 3.1.2. нормально сериализуется - см. AIF-примитивы 3.1.3. удобно отлаживать - достаточно переопределить метод toString 3.2. минусы 3.2.1. ни фига не компактно и не просто - очень громоздко 3.2.2. поседеешь пока встроишь в pack/unpck 3.2.3. очень неудобно отображать эти классы в поля формы или диалога 4. временная таблица? 4.1. плюсы 4.1.1. контроль типов 4.1.2. нормально сериализуется 4.1.3. легко работать с набором значений (не одна запись, а несколько во временной таблице) 4.2. минусы 4.2.1. неудобно отлаживать 4.2.2. неудобно передавать значения 4.2.3. неудобно создавать подобные пары - слишком много телодвижений надо сделать 3.2.3. очень неудобно отображать эти классы в поля формы или диалога буду рад вашим замечаниями и дополнениям. |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от mazzy
![]() Примеры:
![]() Цитата:
Цитата:
Сообщение от mazzy
![]() другими словами, в алгоритмах используется пара значений - tuple(есть ли значение, значение). Какие манипуляции хотелось бы делать с подобными значениями в Аксапте:
![]() Цитата:
Цитата:
Цитата:
![]()
|
|
|
За это сообщение автора поблагодарили: mazzy (2). |
Теги |
null, nullable, tuple, как правильно |
|
|