AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.06.2015, 11:33   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
итак, плюсы/минусы реализаций:

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. очень неудобно отображать эти классы в поля формы или диалога


буду рад вашим замечаниями и дополнениям.
Теги
null, nullable, tuple, как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Универсальный изменятель значений полей wojzeh DAX: Программирование 17 26.09.2013 17:47
Как лучше хранить ссылки на записи - (RefTableId, Company, RefRecId) mazzy DAX: Программирование 41 08.07.2011 13:18
Как правильно хранить статичный набор начальных данных в классах? mazzy DAX: Программирование 58 14.04.2011 12:10
Последовательная замена множества уникальных значений на другие без возникновения дубликатов gl00mie DAX: Программирование 23 24.11.2010 15:05
Проверки заполненных значений в связанных таблицах. miklenew DAX: База знаний и проекты 11 25.12.2007 14:40

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:13.