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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.06.2013, 10:41   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Logger Посмотреть сообщение
Да, но кому от этого легче ? Ведь SysExtensionAppClassFactory все равно придется менять.
Да нет же, ни в коем случае! Смысл как раз в том, что каждый статический метод-"фабрика" в базовом классе той или иной иерархии должен знать всех наследников уже во время компиляции - именно поэтому его постоянно приходится менять при добавлении новых наследников. А "фабрика" SysExtension во время компиляции ничего ни про кого не знает - она получает всю необходимую информацию о классах-наследниках во время выполнения, узнает, какое значение какого атрибута сопоставлено какому наследнику, и уже исходя из этого создает экземпляр нужного класса из иерархии для заданного значения атрибута. Эта информация, разумеется, кэшируется, причем в 2012-й появился глобальный кэш на уровне АОСа (т.е. разделяемый между всеми сессиями). Но основной смысл в том, что ни код базового класса, ни код "фабрики" никак не меняется при создании очередного класса-наследника.
Цитата:
Сообщение от Logger Посмотреть сообщение
Цитата:
No change in the public API! The contract stays the same – this is an easy and low risk refactoring.
исходный вариант с конструктором не предполагал изменение API.
Наверно, имеется в виду то, что можно переделать методы-"фабрики" базовых классов таким образом, чтобы они использовали новую инфраструктуру SysExtension вместо явного прописывания всех наследников в своем коде. Правда, для этого надо каждому классу-наследнику повесить соотв. атрибут, но зато вызывающий код никак не изменится - он, условно, как передавал какой-нить енум в статический метод базового класса, так и будет передавать, только этот метод перестанет на этапе компиляции "знать", какой именно класс-наследник окажется создан для того или иного значения енума.

Последний раз редактировалось gl00mie; 18.06.2013 в 10:53. Причина: добавление
Теги
sysextension

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
HK Framework DSPIC DAX: Программирование 21 11.12.2024 20:00
ax_gfm_framework_team: Ledger account combinations - Part 7 (Advanced topics) Blog bot DAX Blogs 0 16.02.2013 08:08
ax-erp: Reporting Framework in AX 2012 Blog bot DAX Blogs 0 19.07.2012 01:11
sumitsaxfactor: Reporting Framework in AX 2012 Blog bot DAX Blogs 0 14.06.2012 11:11
emeadaxsupport: Update to AX 2012 Framework Component Documentation: SysOperation Framework Blog bot DAX Blogs 0 09.06.2012 00:11

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

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

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