之前我们讨论了graphviz的dot图,mermaid画流程图和时序图,plantuml画时序图。
plantuml除了可以画时序图之外,还可以画类图。就跟写代码一样,直接上例子:
@startuml
interface Tree{
+ Tree getParent()
+ Object getPayload()
+ Tree getChild(int i)
+ int getChildCount()
+ String toStringTree()
}
interface SyntaxTree{
+ Interval getSourceInterval()
}
interface ParseTree{
+ <T> T accept(ParseTreeVisitor<? extends T> visitor)
+ String getText()
+ String toStringTree(Parser parser)
}
interface RuleNode{
+ RuleContext getRuleContext()
}
interface TerminalNode{
+ Token getSymbol()
}
class RuleContext
class ParserRuleContext
Tree <|-- SyntaxTree
SyntaxTree <|-- ParseTree
ParseTree <|-- RuleNode
ParseTree <|-- TerminalNode
RuleNode <|.. RuleContext
RuleContext <|-- ParserRuleContext
@enduml
简单介绍一下:
- interface定义接口,属性:公开的前面加"+",私有的之前加"-"
- class定义类
-
关系定义:
- 泛化,Generalization:<|--
- 关联,Association:<--
- 组合,Composition:*--
- 聚合,Aggregation:o--
- 实现,Realization:<|..
- 依赖,Dependency:<..
来看看上面代码的效果吧:
更详细的信息,请参考官方文档:http://plantuml.com/class-diagram