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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.12.2015, 10:04   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
отделить публичный API от особенностей реализации
Вообще говоря, для этих целей используют interface.
и в аксапте оно есть.
Старый 14.12.2015, 10:11   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
Вообще говоря, для этих целей используют interface.
и в аксапте оно есть.
1) Интерфейсы могут быть внутренними по отношению к модулю
2) Попробуй написать публичное API на одних интерфейсах (подсказка - как получить экземпляр )
Старый 14.12.2015, 10:43   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
1) Интерфейсы могут быть внутренними по отношению к модулю
тогда их не надо оформлять как интерфейсы, а сразу класс )

интерфейсы - это и есть публичный контракт.
и никаких поробностей реализации.
Старый 14.12.2015, 10:54   #4  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
тогда их не надо оформлять как интерфейсы, а сразу класс )

интерфейсы - это и есть публичный контракт.
и никаких поробностей реализации.
Внутри неймспейса могут быть интерфейсы которые не являются публичным контрактом этого неймспейса, но являются контрактами каких-то внутренних классов (чисто для внутренней реализации неймспейса).

и 3) Как без internal предотвратить неумышленное использование особенностей реализации с учетом того, что (2) для того, чтобы создать экземпляр интерфейса все равно нужен класс.
Старый 14.12.2015, 11:04   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
...но являются контрактами каких-то внутренних классов (чисто для внутренней реализации неймспейса)....
макс, да понимаю я что ты сказать хочешь.

пойми и меня - для внутренних классов совсем не обязательно использовать интерфейсы. достаточно обычных классов.

internal - не нужен, дядя Вова.
http://coub.com/view/138x2

но если так хочется, и если уж пошли по пути public-полей. то и фиг с ними.
Старый 14.12.2015, 11:09   #6  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
макс, да понимаю я что ты сказать хочешь.

пойми и меня - для внутренних классов совсем не обязательно использовать интерфейсы. достаточно обычных классов.
В области языков программирования вообще ничего не обязательно. Все Тьюринг эквивалентные языки отличаются только удобством .

Интерфейсы кое-где, например, могут быть удобнее тем, что позволяют множественное наследование.
За это сообщение автора поблагодарили: EVGL (1).
Старый 14.12.2015, 11:16   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
Интерфейсы кое-где, например, могут быть удобнее тем, что позволяют множественное наследование.
))))

интерфейсы - это публичный контракт.
что не является публичным контрактом - не обязательно выражать через интерфейсы.

https://ru.wikipedia.org/wiki/%D0%98...BD%D0%B8%D0%B5)
http://habrahabr.ru/post/30444/
и так далее...


вводить еще одну сущность для обозначения "вот это публичный контракт" - можно.
но лучше сделать более удобными интерфейсы.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
mfp: X++ in AX7: Client/Server keywords Blog bot DAX Blogs 23 15.12.2015 09:09
mfp: X++ in AX7: Static event subscription Blog bot DAX Blogs 0 11.12.2015 11:11
mfp: X++ in AX7: The var keyword Blog bot DAX Blogs 43 04.12.2015 10:19
mfp: X++ in AX7 Blog bot DAX Blogs 0 02.12.2015 22:13
mfp: "Internal error 25" causes and solutions Blog bot DAX Blogs 0 28.05.2011 01:12

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

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

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