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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.12.2015, 10:54   #1  
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   #2  
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   #3  
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   #4  
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/
и так далее...


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

Я говорю, что он должен являться публичным контрактом класса но может являться особенностью реализации модуля.

Например USB является публичным интерфейсом компьютера, а AGP является интерфейсом для его внутренней реализации, но публичным для видеокарты и материнской платы.

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

если реально интересно поищи/почитай по ключевым словам "наследование нарушает инкапсуляцию"

а если просто похоливарить - то таки да, ты победил, конечно.
плюс можно почитать по ключевым словам "Инверсия презумпции"
например, http://los123.livejournal.com/210100.html
Старый 14.12.2015, 12:41   #7  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
макс, ты просишь меня доказать теорему несуществования?
бгггг.
Ты сказал, что интерфейсов достаточно для того, чтобы отделить публичные члены неймспейсов от приватных.

Я прошу привести пример где все публичные члены были бы интерфейсами (иначе как-то придется вводить публичные и непубличные классы).

Цитата:
если реально интересно поищи/почитай по ключевым словам "наследование нарушает инкапсуляцию"
Тебе надо как-то связать этот тезис со всем остальным
За это сообщение автора поблагодарили: mazzy (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
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, время: 23:34.