ืืืื
ืื ื ืืืฉื ืฉืืืื ืฉืืขื ืืช ืืืฉืคื "ืืืื ืคืขืืืื, ืืชืื ืคืขื ืืืช". ืื ืขืฆื ืืืืชืืช ืืชืื ืืช. ืชืืื ืขืืืฃ ืืืฉืื ืขื ืืืืฉืื ืืคื ื ืฉืืชื ืืงืืืฉ ืืื ืืืฉืื ืืืืฆืืขื. ืืืืื ืืืืฉืื, ืืขืชืื ืงืจืืืืช ืืชื ืฆืจืื ืืืฆืืจ ืืืชืืช ืืืืฉืื ืืื ืื ืืชืงืฉืจื. ืืืฆืื ืืืืชื ืฉื ืืื ืืืื ืืขืชืื ืงืจืืืืช ืืขืืืจ ืื ืืืฆืื ืืช ืืคืชืจืื ืื ืืื ืืืืชืจ. ืื ืืืงืื ืฉืื ืืืืืจืืช ืืืืชื ืฉื UML ืืื ืืขืืจืชื ื.ืื ืื UML?
ืื ืชืกืชืื ืขื ืชืืื ืืช ืจืืืื ืืืืช ืืื ืืขื ืืืคืืฉ, ืชืจืื ืฉื-UML ืืฉ ืงืฉืจ ืืืืืืจืืืช, ืืืฆืื ืืืจืืืขืื. ืืชื ืฆืจืื ืืืขืช ืฉ-UML ืจืืฉื ืชืืืืช ืฉื Unified Modeling Language. ืืืืื ืืื ืืืืื ืืืฉืืื ืืื. ืืืฉืืขืืช ืืื ืฉืืชืืื ืืช ืฉืื ื ืืืื ื ืื ืจืง ืื ื, ืืื ืื ืืื ืื ืฉืืืืจ ืืช UML. ืืืื ืืฉืคื ืืฆืจืคืชืืช ืืฆืืืจ ืืืืืจืืืช.ืืคื ืืืงืืคืืื,
"UML ืืื ืฉืคืช ืืืืืื ืืืืจืืช ืืืืืืช, ืืชืคืชืืืชืืืช, ืืชืืื ืื ืืกืช ืชืืื ื ืฉื ืืขืื ืืกืคืง ืืจื ืกืื ืืจืืืช ืืืืืืฉ ืืช ืืขืืฆืื ืฉื ืืขืจืืช."ืืืืจ ืืืขื ืืื ืืืืชืจ, ืฉืื ืืืื ืื ืืฉื, ืืื ืฉื-UML ืืฉ ืืคืจืืื. ืืืฉ ืืคืืื ืืคืจื UML 2. ืืืืข ื ืืกืฃ ืขื ืืืคืจื ืืืื ืืืชืจ ืงืืืฆืช ื ืืืื ืืืืืืงืืื . ืืืขืฉื, ืงืืืฆื ืื ืืคืชืืช ืืช ืืคืจืื UML. ืืขื ืืื ืื ืฉ-UML ืืื ื ืืืืื ืืชืืืืจ ืืื ื ืืฉืืขืืจืื. ืืฉื ื ืกืืืื ืจืืื ืฉื ืืืืืจืืืช UML. ืืืืืงืืคืืื ืืฉ ืชืืืืจ ืงืฆืจ ืฉื ืกืืืื ืฉืื ืื ืฉื ืืืืืจืืืช UML: ืืืืืจืืืช UML . ืื ื ืืืืจ ืืืืืืจืืืช ืืืืงืืช UML, ืืืื ืืืืืืจ ืืช ืืกืคืจ "Head First Design Patterns" , ืืฉืชืืฉ ืืืืืืจืืืช UML ืืื ืืืืืืฉ ืืคืืกื ืขืืฆืื. ืืฉืืจื ืืชืืชืื ื ืืื ืฉืืืืช ืืฉืชืืฉืื ื-UML. ืืืกืชืืจ ืฉืืืืืจ ืืช ืื ืืืื ื ืืื ืืืฉืชืืฉ ืื ืื ืฉืืืืฉื.
ืืืฉืื
ืืืื ื ืืื ืฉืื ืื ื ืืืืืื ืืขืืื ืขื UML ื-IDE. ืื ื ื ืฉืชืืฉ ื-IntelliJ IDEA ื-IDE ืฉืื ื. ืื ืืชื ืืฉืชืืฉ ื-IntelliJ IDEA Ultimate, ืื ืืืชืงื ืื ื ืืช ืืชืืกืฃ "ืชืืืื UML" "ืืืืฅ ืืงืืคืกื". ืื ืืืคืฉืจ ืื ืืืฆืืจ ืืืืคื ืืืืืืื ืืืืืจืืืช ืืืืงืืช ืืคืืช. ืืืืืื, ืืฉืชืืฉ ื-Ctrl+N ืื ืืคืจืื ืืชืคืจืื "ื ืืื" -> "Class" ืืื ืืขืืืจ ืืืืืงื ArrayList. ืืขืช ืืชืคืจืื ืืืงืฉืจ ืฉื ืฉื ืืืืชื, ืืืจ "ืืืืืจืื" -> "ืืฆื ืืืืืจืื ืงืืคืฆืช". ืืชืืฆืื ืืื, ืื ื ืืงืืืื ืชืจืฉืื ืืคื. ืืื ืื ืื ืืชื ืจืืฆื ืืฆืืืจ ืืช ืืืืืืจืื ืืขืฆืื? ืืื ืื ืืื ืื ืืช ืืจืกืช ื-Ultimate? ืืืืฆืขืืช IntelliJ IDEA Community Edition, ืืื ืื ื ืืจืืจื ืืืจืช. ืื ืื ืื ื ืฆืจืืืื ืืืืื ืืื ืืืืจืื ืืืืืจืืช UML. ืจืืฉืืช, ืขืืื ื ืืืชืงืื ืืช Graphviz . ืืืื ืงืืืฆื ืฉื ืืืื ืืืืืื ืฉื ืืจืคืื. ืืชืืกืฃ ืื ื ืฉืชืืฉ ืชืืื ืื. ืืืืจ ืืืชืงื ื, ืขืืื ืืืืกืืฃ ืืช ืกืคืจืืืช bin ืืกืคืจืืืช ืืืชืงื ื ืฉื Graphviz ืืืฉืชื ื ืืกืืืื PATH. ืืืืจ ืืื, ื- IntelliJ IDEA, ืืืจ ืงืืืฅ -> ืืืืจืืช ืืชืคืจืื. ืืืืื "ืืืืจืืช", ืืืจ ืืงืืืืจืืืช "ืชืืกืคืื", ืืืฅ ืขื ืืคืชืืจ "ืขืืื ืืืืืจืื", ืืืชืงื ืืช ืืคืืืืื ืืฉืืืื PlantUML . ืื ืื ืื ืืื ื-PlantUML? ืืื ืืชืืจ UML ืืืืฆืขืืช ืฉืคืช ืชืืืืจ ืืจืฃ ืื ืงืจืืช "ื ืงืืื", ืื ืฉืืืคื ืืืชื ืืืืชืจ ืืื ืืืจืกืืืช, ืืืืืื ืฉืฉืคืช ืื ืงืืืืช ืืฉืืฉืช ืืืชืจ ืืืฉืจ ืจืง PlantUML. ืืชืจื ืืื, ืื ืื ืฉืื ื ืขืืฉืื ืืืื ืืืื ืืืืขืฉืืช ืื ืจืง ื-IDE, ืืื ืื ืืืื ืืจื ื ื- planttext.com . ืืืืจ ืืชืงื ืช ืืคืืืืื PlantUML, ื ืืื ืืืฆืืจ ืืืืืจืืืช UML ืืืืฆืขืืช "ืงืืืฅ" -> "ืืืฉ". ืืืื ื ืืฆืืจ ืืืืืจืืช "ืืืืงื UML". ืคืขืืื ืื ืชืืฆืืจ ืืืืืืืืช ืชืื ืืช ืขื ืืืืื. ืื ื ื ืืืง ืืช ืืชืืื ืฉืื ืื ืืกืืฃ ืืช ืืชืืื ืฉืื ื. ืืื ืืืืื ืืืฆื ืืืืฆื ืืืช ืืืงืกื, ืขืืื ืืืืจืื PlantUML: plantuml class-diagram. ืืืกืชืื ืขื ืืืืจืื ืืื, ืืืื ื ืชืืื ืืืฆืืจ ืืืืืจืืช UML ืฉืื ื. ืืืกืฃ ืืช ืืชืืื ืืื, ืืืชืืจ ืฉืชื ืืืืงืืช:
@startuml
class ArrayList {
}
class LinkedList {
}
@enduml
ืืื ืืจืืืช ืืช ืืชืืฆืื ื-IDEA, ืืืจ "ืชืฆืืื" -> "ืืื Windows" -> "PlantUML". ืื ืื ื ืืงืืืื ืจืง ืฉื ื ืจืืืืขืื ืฉืืืืฆืืื ืืืชืืช. ืื ื ืืืืขืื ืฉืฉืชื ืืืืืงืืช ืืืื ืืืืฉืืืช ืืช ืืืฉืง List . ืืขืจืืช ืืืกืื ืืขืืืืช ืื ื ืงืจืืช ืืืืืฉ. ืงืฉืจ ืื ืืืืฆื ืืืืฆืขืืช ืืฅ ืขื ืงื ืืงืืืงื. ืืืื ื ืฆืืืจ ืืช ืื:
interface List
List <|.. ArrayList
List <|.. LinkedList
ืจืฉืืื ืืื ืืื ืืืืื ืืืชืช ืืืกืฃ . ืืืืืจ, ืืื ืืืจืฉ ืืช Collection . ืงืฉืจ ืื ื ืงืจื ืืืืื. ืื ื ืจืื ืืื ืืฅ ืขื ืงื ืจืฆืืฃ ืจืืื. ืืืื ื ืฆืืืจ ืืช ืื:
interface Collection
Collection <|-- List
ืืกืื ืืงืฉืจ ืืื, ืืืกืฃ ืืชืืืืจ ืืืืืงื ArrayList ืขืจื ืขื ืืขืจื ืืืื ืืื ืคืจืื ืฉื ืืืืื :
~Object[] elementData
ืืขืช ืื ื ืจืืฆืื ืืืจืืืช ืฉ- ArrayList ืืืื ืืื ืืืืืืงืืื. ืืืงืจื ืื, ืืืื ืงืฉืจ ืฆืืืจื. ArrayList ืืื ืืืจืื, ืืืืืื ืฉืืื ืืืื ืืืืืืงืืื ืืืจืื. ืื ื ืืืืจืื ืฆืืืจื ืื ืืืืืืืงืืื ืฉื ืืจืฉืืื ืืืืืื ืืืชืงืืื ืืื ืืจืฉืืื: ืื ืืื ื ืืืงืื ืืื ืืืจืืืื ืืืจืฉืืื. ืืฉื ืืืืื ืฉืืื ืืื ื ืงืฉืืจ ืืื ืืืืื ืฉื ืืจืฉืืื. ืืืืื "ืืฆืืืจ" ืืืืขื ืืืื ื ืืืืื ืืช ืืืชืืจืืืช ื"ืืจืืื", ืืืืืจ ืืฉืื ืฉืืืจืื ืืืฉืื. ืืืฉื, ืืืืื ืืฉ ืื ื ืืืืื ืืฉืืื (ืืืจืื), ืืืืจืื ืืืฉืืื ืืื ืืข. ืืช ืืืืืื ืขืฆืื ื ืืชื ืืคืจืง, ืื ืืื ืืืฉืืืจ ืืืง ืืืจืืืืื ืืื. ืืืฉื, ืืืืืจ ืื ืืืื ืืก ืืืจืืื ืืืจืช. ืื ืืืชื ืืืจ ืืจืฉืืื. ืื ืืชืืื ืืืขืืื ืจืืง ืืฆืืืจื ืืืงื ืจืฆืืฃ. ื ืฆืื ืืืช ืืืืคื ืืื:
class Object{
}
ArrayList o- Object
ืืขืช ืื ื ืจืืฆืื ืืืจืืืช ืฉืื ืืืื ื-ArrayList , ืืืืืงื LinkedList ืืืืื Node s - ืงืื ืืืื ืจืื ืฉืืคื ืื ืื ืชืื ืื ืืืืืืกื ืื. ืืืงืจื ืื, Node s ืื ืืืง ื- LinkedList ืืืื ืืื ืงืืื ืขืฆืืื. Node ืืื ื ืืชืืื ืขืฆืื . ืืื ืืืื ืจืง ืืชืืืืกืืช ืืชืืื. ืืืืืื, ืืืฉืจ ืื ื ืืืกืืคืื ืืืจืืืช ื- LinkedList , ืื ื ืืืกืืคืื Node ืืืฉ ืืืืื ืืคื ืื ืืืืจืืืช, ืืื ืื ืงืืฉืืจ ื- Node ืืงืืื ืืืื . ืืขืจืืช ืืืกืื ืื ื ืงืจืืช ืงืืืคืืืืฆืื. ืืื ืืชืืืจ ืขื ืืื ืฆืืืจ ืงื ืจืฆืืฃ ืขื ืืขืืื ืืื ืขื ืืืจืืื (ืืฉืื ืืขืฉืื ืืืืงืื ืืจืืืืื). ืืขืช ื ืฆืื ืืช ืืงืฉืจ ืืืงืกื:
class Node{
}
LinkedList *-- Node
ืืขืืฉืื ืืชื ืฆืจืื ืืืืื ืืื ืืชืืจ ืกืื ืืฉืื ื ืืกืฃ ืฉื ืืขืจืืช ืืืกืื: ืชืืืช. ืืื ืืฉืืฉ ืืืฉืจ ืืืืงื ืืืช ืืฉืชืืฉืช ืืืืืงื ืืืจืช, ืื ืืืืืงื ืืื ื ืืืืื ืืืื ื ืืืจืฉืช ืืช ืืืืืงื ืืืฉืืืฉืช. ืืืืืื, LinkedList ื- ArrayList ืืืืขืื ืืืฆืืจ ListIterator . ืื ื ืืืืฆืืื ืืืช ืืืฆืื ืขื ืงื ืืงืืืงื:
class ListIterator
ListIterator <... ArrayList : create
ListIterator <... LinkedList : create
ืืืืจ ืฉืขืฉืื ื ืืช ืื ืื, ืื ื ืืงืืืื: ืืชื ืืืื ืืืืกืืฃ ืืื ืคืจืืื ืฉืฆืจืื. ืืืืื, ืืื ืฉืื ืืืจ ืขื ืืืขื ืืฆืืืจ ืชืจืฉืื ืืื. ืืฉืืชื ืขืืื ืขื ืืืฉืืืืช ืฉืื, ืืชื ืืืื ืืฆืืืจ ืืช ืื ืืืืืจืืช ืืื. ืื ืืขืืืจ ืื ืืคืชื ืืช ืืืืืืช ืืืฉืื ืืจื ืืจืืืืงืืืจืช ืืืคืืืงืฆืื ืืืืืืช ืืกืจืื ืืช ืืืื ื ืืืืชื ืืฉืื ืืืงืื, ืื ืืืืจ ืฉืืืจ ืืืืืช ืืช ืืืื ืืืืฉืื ืืืืื ืืื ื ืืื. ืื ื ืจืื ืืื ืกืืื ืืืื ืื ืกืืช ืืช ืื, ืื? :)
ืืืืืืฆืื
ืืฉื ื ืืจืืื ืฉืื ืืช ืืืฆืืจ ืืืืคื ืืืืืืื ืืืืืจืืืช PlantUML. ืืืืืื, ื-IDEA ืืฉ ืืช ืืคืืืืื SketchIT , ืืื ืืื ืื ืืฆืืืจ ืืืืืจืืืช ืืฆืืจื ื ืืื ื ืืืืืืื. ื ื ืื ืฉืืืืฉืื ืฉื ืืืฉืงืื ืืฆืืืจ ืืฆืืจื ืฉืืืื (ืืื ืืืฆื ืืชืืจ ืืจืืฉื). ืืืื ืืจื ื ืืฉ ืืืืืืืช ืืืฆื ืืฉืื ืืืช ืืชืืืื ืืื ืืื ืฉื ืืคืจืืืงื ืฉืื. ืืืืืื, ืืชื ืืืื ืืืฆืื ืืืฆื ืืืฉืชืืฉ ื-uml-java-docklet ืขื Maven. ืืื ืืืืืื, ื ืฉืชืืฉ ื- Maven Archetype ืืื ืืืฆืืจ ืืืืืจืืช ืคืจืืืงื ืฉื Maven. ืึธืจืึผืฅ
mvn archetype:generate
ืืชืืืื ืืืืจ ืืกืคืจ ืื ืืื ืืกื ื, ืืฉืืจ ืืช ืืจืืจืช ืืืืื - ืคืฉืื ืืงืฉ Enter. ืื ืชืืื ืืืื "maven-archetype-quickstart". ืืืจ ืืช ืืืจืกื ืืขืืื ืืช ืืืืชืจ. ืืืืจ ืืื, ื ืขื ื ืขื ืืื ืฉืืืืช ืื ืกืืื ืืืฆืืจ ืืช ืืคืจืืืงื: Maven ืืื ื ืื ืืฉื ืฉื ืืืืจ ืื, ืื ืฉืชืืื ืืืฆืื ืชืฉืืืืช ืืฉืืืืชืื ืขื Maven ืืืจืื ืืืฉืชืืฉืื ืฉื Maven
. ืืคืจืืืงื ืฉื ืืฆืจ, ืคืชื ืืช ืงืืืฅ ืชืืืืจ ืืคืจืืืงื, pom.xml, ืืขืจืืื. ืื ื ื ืขืชืืง ืืช ืืชืืื ืืชืืืืจ ืืชืงื ืช uml-java-docklet
ืืงืืืฅ ืื. ืื ื ืืชื ืืืฆืื ืืช ืืืคืฅ ืืืฉืืฉ ืืชืืืืจ ืืืืืจ ืืืจืืื ืฉื Maven. ืืื ืืืืจืื ืืืืื ืขืืื ืขืืืจื: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0
. ืืืืืื ืืืจืืช, ืืชืืืืจ ืืชื ืคืฉืื ืฆืจืื ืืืืืืฃ ืืช groupId ื-"info.leadinglight" ื-"com.chfourie" ืืืืืืืจ ืืช ืืืจืกื ื-"1.0.0". ืืืืจ ืืื, ื ืืื ืืืืฆืื ืืช ืืคืงืืืืช ืืืืืช ืืกืคืจืืื ืขื ืืงืืืฅ pom.xml:
mvn clean install
ื
mvn javadoc: javadoc
ืื ื ืคืชื ืืขืช ืืช ืืชืืขืื ืฉื ืืฆืจ (explorer target\site\apidocs\index.html), ื ืจืื ืืช ืืืืืจืืืช ื-UML. ืืื, ืงืฉืจ ืืืืฉืื ืืืฆื ืืขืช ืืืืื :)
GO TO FULL VERSION