ВУЗ:
Составители:
302
Под интерфейсом в ООМ следует понимать некоторую
совокупность видимых компонентов объекта, т.е. для блока
это внешние переменные и видимые извне (pablic)
процедуры и функции. Если блок содержит совокупность
видимых компонент с теми же именами, что и в декларации
интерфейса, и с совместимыми типами, то блок реализует
этот интерфейс. Каждый блок
неявно задает определенный
интерфейс - совокупность всех своих внешних
компонентов. «Чистым» интерфейсом является блок, у
которого не определено поведение.
Тогда усилитель в схеме на рис. 10.1 можно заменить
усилителем с насыщением, который совместим с ним по
наследованию и по интерфейсу. Однако усилитель может
быть также заменен и на интегратор, задаваемый
уравнением
dY
=KX
dt
, который тоже имеет вход Х, выход Y
и параметр
К того же вещественного типа и,
следовательно, совместим с усилителем по интерфейсу,
хотя и не имеет с ним ничего общего по наследованию.
В языке Modelica в дополнение к паре «суперкласс-
подкласс» (superclass-subclass) очень активно используется
другая пара – «супертип-подтип» (supertype-subtype),
ориентированная на совместимость по интерфейсу.
Например, из класса CGain можно вывести производный
класс (подкласс) CMulDiv (умножитель-
делитель).
Усилитель с насыщением в Modelica нельзя вывести из
простого усилителя, поскольку карт состояния этот язык не
поддерживает, а уравнения переопределять запрещает.
model CGain
parameter Real K = 1;
input Real X (start=0);
output Real Y;
equation
Y = K*X;
Страницы
- « первая
- ‹ предыдущая
- …
- 300
- 301
- 302
- 303
- 304
- …
- следующая ›
- последняя »