Шаблон:Relation diagram usage: различия между версиями
Перейти к навигации
Перейти к поиску
(Новая страница: «{{relation_diagram|diagram=Опциональное имя диаграммы|graph=OptionalGraphName|content= {{relation_diagram addref|class=Interface1|ref=Im…») |
|||
Строка 1: | Строка 1: | ||
Создание диаграммы отношений классов реализуется набором шаблонов: | |||
# {{tl|relation_diagram|diagram{{=}}<имя диаграммы>|graph{{=}}<имя графа>|content{{=}}<описание классов и отношений>}} - объявление диаграммы отношений с опциональными именами отношений (diagram) и графа (graph), а также обязательным наполнением, задаваемым нижеследующими шаблонами. | |||
# {{tl|relation_diagram addref|class{{=}}<имя класса>|ref{{=}}<ссылка в [[mw:Help:Links|синтаксисе вики]]>}} - опциональная ассоциация узла графа (т.е. класса диаграммы отношений) с внутренним или внешним ресурсом с помощью механизма [http://www.w3schools.com/tags/tag_map.asp HTML map]. | |||
# {{tl|relation_diagram add|<тип отношения>|<имя класса, инициирующего отношение>|<имя класса, принимающего отношение>}} - добавление двух классов и отношения между ними. Если класс с указанным именем уже существует на диаграмме, то новый узел не создается; тип отношения задается одним из ключевых слов: | |||
## <tt>implementation</tt> - реализация интерфейса; | |||
## <tt>inheritance</tt> - наследование; | |||
## <tt>aggregation</tt> - агрегирование; | |||
## <tt>composition</tt> - композиция; | |||
## <tt>association</tt> - ассоциация. | |||
Диаграмма, описанная в данном синтаксисе интерпретируется в синтаксис [http://www.graphviz.org/Documentation/dotguide.pdf dot], который подается через расширение [[mw:Extension:GraphViz|GraphViz]] на вход интерпретатора [http://www.graphviz.org/ GraphViz]. Загружаемый на вики файл имеет имя, заданное именем статьи. Поэтому при использовании шаблона {{tl|relation_diagram}} внутри другого шаблона может возникать [[mw:Extension_talk:GraphViz#Polynomial_explosion_when_used_in_templates|проблема, связанная с большим количеством одинаковых диаграмм]]. | |||
Однако можно без опасений использовать внутри шаблонов шаблоны, составляющие наполнение диаграммы - для естественного построения комплексных диаграмм отношений. | |||
Использование: | |||
<pre> | |||
{{relation_diagram|diagram=Опциональное имя диаграммы|graph=OptionalGraphName|content= | |||
{{relation_diagram addref|class=Interface1|ref=[[ImplementationClass interwiki reference]]}} | |||
{{relation_diagram addref|class=DerivedClass|ref=https://www.google.com}} | |||
{{relation_diagram add|implementation|ImplementationClass|Interface1}} | |||
{{relation_diagram add|implementation|ImplementationClass|Interface2}} | |||
{{relation_diagram add|inheritance|DerivedClass|BaseClass}} | |||
{{relation_diagram add|aggregation|Aggregate|Aggregatee}} | |||
{{relation_diagram add|composition|Composition|Element}} | |||
{{relation_diagram add|association|Association1|Association2}} | |||
}} | |||
</pre> | |||
<includeonly>По описанной выше причине, результат см. в [[Шаблон:Relation diagram usage|отдельном описании]].</includeonly> | |||
<noinclude> | |||
Результат: | |||
{{relation_diagram|diagram=Опциональное имя диаграммы|graph=OptionalGraphName|content= | {{relation_diagram|diagram=Опциональное имя диаграммы|graph=OptionalGraphName|content= | ||
{{relation_diagram addref|class=Interface1|ref=[[ImplementationClass interwiki reference]]}} | {{relation_diagram addref|class=Interface1|ref=[[ImplementationClass interwiki reference]]}} | ||
Строка 10: | Строка 45: | ||
{{relation_diagram add|association|Association1|Association2}} | {{relation_diagram add|association|Association1|Association2}} | ||
}} | }} | ||
</noinclude> |
Версия 21:36, 2 января 2016
Создание диаграммы отношений классов реализуется набором шаблонов:
- {{relation_diagram|diagram=<имя диаграммы>|graph=<имя графа>|content=<описание классов и отношений>}} - объявление диаграммы отношений с опциональными именами отношений (diagram) и графа (graph), а также обязательным наполнением, задаваемым нижеследующими шаблонами.
- {{relation_diagram addref|class=<имя класса>|ref=<ссылка в синтаксисе вики>}} - опциональная ассоциация узла графа (т.е. класса диаграммы отношений) с внутренним или внешним ресурсом с помощью механизма HTML map.
- {{relation_diagram add|<тип отношения>|<имя класса, инициирующего отношение>|<имя класса, принимающего отношение>}} - добавление двух классов и отношения между ними. Если класс с указанным именем уже существует на диаграмме, то новый узел не создается; тип отношения задается одним из ключевых слов:
- implementation - реализация интерфейса;
- inheritance - наследование;
- aggregation - агрегирование;
- composition - композиция;
- association - ассоциация.
Диаграмма, описанная в данном синтаксисе интерпретируется в синтаксис dot, который подается через расширение GraphViz на вход интерпретатора GraphViz. Загружаемый на вики файл имеет имя, заданное именем статьи. Поэтому при использовании шаблона {{relation_diagram}} внутри другого шаблона может возникать проблема, связанная с большим количеством одинаковых диаграмм.
Однако можно без опасений использовать внутри шаблонов шаблоны, составляющие наполнение диаграммы - для естественного построения комплексных диаграмм отношений.
Использование:
{{relation_diagram|diagram=Опциональное имя диаграммы|graph=OptionalGraphName|content= {{relation_diagram addref|class=Interface1|ref=[[ImplementationClass interwiki reference]]}} {{relation_diagram addref|class=DerivedClass|ref=https://www.google.com}} {{relation_diagram add|implementation|ImplementationClass|Interface1}} {{relation_diagram add|implementation|ImplementationClass|Interface2}} {{relation_diagram add|inheritance|DerivedClass|BaseClass}} {{relation_diagram add|aggregation|Aggregate|Aggregatee}} {{relation_diagram add|composition|Composition|Element}} {{relation_diagram add|association|Association1|Association2}} }}
Результат:
