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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.11.2004, 11:51   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Реализация паттерна Visitor в Axapta
На днях, работая над довольно большой задачей, заметил, что для решения небольшой подзадачки мне идеально походит паттерн Visitor.
Про сам паттерн можно прочитать здесь , я лишь подчеркну особенности реализации паттерна в Аксапте.
Невозможность перегрузки методов в Axapta вызывает наибольшие затруднения при реализации паттерна. Так двойную диспетчеризацию, лежащую в основе паттерна пришлось реализовать вот таким довольно корявым образом:
PHP код:
        void visit(Employee empl)
        {

        
Boss boss;
        ;
        
totalDays += empl.getVacDays();
        if (
classIdGet(empl) == classNum(Boss))
        {

        
boss empl;
        
totalDays += boss.getBonusDays(); }

        } 
Вот здесь можно скачать пример, , демонстрирующий реализацию паттерна. Пример использования абстрактный, не имеющий отношения к реальной задаче. Соответствие ролей классам следующее:

Роль Класс
Посетитель(Visitor) Visitor
Конкретный посетитель(Concrete Visitor) VacationVisitor
Конкретный элемент (Concrete Element) Employee, Boss
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptabuilder: How to build Axapta application from XPO files stored in Visual Source Safe. Blog bot DAX Blogs 0 12.04.2007 16:10
axaptabuilder: How to build Axapta application from XPO files stored in Visual Source Safe. Blog bot DAX Blogs 0 22.11.2006 15:20
Реализация замен и аналогов в Axapta 3.0 Om DAX: Функционал 15 16.10.2006 12:29
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

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