## Object Diagram ## Definition of objects You define instances of objects using the ``object`` keyword. @startuml object firstObject object "My Second Object" as o2 @enduml ## Relations between objects Relations between objects are defined using the following symbols : | Type | Symbol | Image | | ----------- | -------- | ------------------ | | Extension | ``<|--`` | ![](extends01.png) | | Composition | ``*--`` | ![](sym03.png) | | Aggregation | ``o--`` | ![](sym01.png) | It is possible to replace ``--`` by ``..`` to have a dotted line. Knowing those rules, it is possible to draw the following drawings. It is possible a add a label on the relation, using ``:`` followed by the text of the label. For cardinality, you can use double-quotes ``""`` on each side of the relation. @startuml object Object01 object Object02 object Object03 object Object04 object Object05 object Object06 object Object07 object Object08 Object01 <|-- Object02 Object03 *-- Object04 Object05 o-- "4" Object06 Object07 .. Object08 : some labels @enduml ## Associations objects @startuml object o1 object o2 diamond dia object o3 o1 --> dia o2 --> dia dia --> o3 @enduml ## Adding fields To declare fields, you can use the symbol ``:`` followed by the field's name. @startuml object user user : name = "Dummy" user : id = 123 @enduml It is also possible to group all fields between brackets ``{}``. @startuml object user { name = "Dummy" id = 123 } @enduml ## Common features with class diagrams * [Hide attributes, methods...](class-diagram#Hide) * [Defines notes](class-diagram#Notes) * [Use packages](class-diagram#Using) * [Skin the output](class-diagram#Skinparam) ## Map table or associative array You can define a map table or [associative array](https://en.wikipedia.org/wiki/Associative_array), with `map` keyword and `=>` separator. @startuml map CapitalCity { UK => London USA => Washington Germany => Berlin } @enduml @startuml map "Map **Contry => CapitalCity**" as CC { UK => London USA => Washington Germany => Berlin } @enduml @startuml map "map: Map" as users { 1 => Alice 2 => Bob 3 => Charlie } @enduml And add link with object. @startuml object London map CapitalCity { UK *-> London USA => Washington Germany => Berlin } @enduml @startuml object London object Washington object Berlin object NewYork map CapitalCity { UK *-> London USA *--> Washington Germany *---> Berlin } NewYork --> CapitalCity::USA @enduml *[Ref. [#307](https://github.com/plantuml/plantuml/issues/307)]*