архитектура модулей: модуль и интерфейс
От: VotVopros  
Дата: 30.08.04 10:30
Оценка:
Здравствуйте,
разбираюсь сейчас с описанием module architecture view (is2000).
ВОПРОС 1:
В чём разница между интерфейсом и модулем.
Иногда считается, что модуль использует другой модуль. А иногда между 2 модулями ставится интерфейс.Когда как нужно поступать?
На самом деле некоторую разницу я уже учуял :
Скажем, если 2 модуля принадлежат 2 разным layer, и используют 1 другого, то между ними необходим интерфейс. Однако в каких ещё случаях нужно выделять у модуля на диаграмме интерфейс?
И вообще какое определение у интерфейса?

ВОПРОС 2:
Есть event listener,связанный с HW,почти на уровне драйверов
и есть модуль А с функциями 1 и 2, находящийся уровнем выше.

В event listener вызываются функции 1и2.
С одной стороны использует модуль А
С другой стороны, listener — это интерфейс низкоуровнего драйвера, используемый модулем А.
Какой вариант правильней?


Заранее спасибо.
Re: архитектура модулей: модуль и интерфейс
От: AndreyFedotov Россия  
Дата: 30.08.04 10:49
Оценка: 2 (1)
Здравствуйте, VotVopros, Вы писали:

VV>Здравствуйте,

VV>разбираюсь сейчас с описанием module architecture view (is2000).
VV>ВОПРОС 1:
VV>В чём разница между интерфейсом и модулем.
Интерейс — абстрактный протокол обмена. Модуль — единица реализации этого (и возможно других) протоколов.
VV>Иногда считается, что модуль использует другой модуль. А иногда между 2 модулями ставится интерфейс.Когда как нужно поступать?
Обычно между двумя модулями показывают интерфейс, что бы подчеркнуть и указать на тот факт, что между модулями существует чёткий и ясно определённый протокол обмена.
Если один модуль — это некие вспомогательные классы, а второй — просто их использует, то в данной ситуации обычно интерфейсов между ними не указывают. Да их и нет.
VV>На самом деле некоторую разницу я уже учуял :
VV>Скажем, если 2 модуля принадлежат 2 разным layer, и используют 1 другого, то между ними необходим интерфейс. Однако в каких ещё случаях нужно выделять у модуля на диаграмме интерфейс?
VV>И вообще какое определение у интерфейса?
Интерфейс — это абстрактный (то есть отделённый от реализации) протокол обмена. То есть набор функций или методов и правила — в каком порядке и при каких условиях их вызывать. В более узком смысле — интерфейс это абстрактный класс (все методы которого чисто вируальные), без данных, который может наследоваться так же только одного интерфейста или не наследоваться вовсе.
Модуль — произвольная единица организации кода. Модуль может вообще не иметь интерфейса, интерфейс может быть неявен и т.д.


VV>ВОПРОС 2:

VV>Есть event listener,связанный с HW,почти на уровне драйверов
VV>и есть модуль А с функциями 1 и 2, находящийся уровнем выше.

VV>В event listener вызываются функции 1и2.

VV>С одной стороны использует модуль А
listener вызывает методы интерфейса, реализованные модулем A и только.
VV>С другой стороны, listener — это интерфейс низкоуровнего драйвера, используемый модулем А.
VV>Какой вариант правильней?
Скорее модуль A использует listener. Хотя они во время работы просто используют друг-друга, в соответствии со способом, указанным в интерфейсе их взаимодействия.


VV>Заранее спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.