JavaRush /ื‘ืœื•ื’ Java /Random-HE /UML: ืžื”ืชื™ืื•ืจื™ื” ืœืคืจืงื˜ื™ืงื”
Viacheslav
ืจึธืžึธื”

UML: ืžื”ืชื™ืื•ืจื™ื” ืœืคืจืงื˜ื™ืงื”

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”

ืžื‘ื•ื

ืื ื™ ื—ื•ืฉื‘ ืฉื›ื•ืœื ืฉืžืขื• ื‘ื™ืœื“ื•ืชื ืžืฉืคื˜ ื›ืžื• " ืžื“ื•ื“ ืคืขืžื™ื™ื, ื—ืชื•ืš ืคืขื ืื—ืช ". ื–ื” ืื•ืชื• ื“ื‘ืจ ื‘ืชื›ื ื•ืช. ืชืžื™ื“ ืขื“ื™ืฃ ืœื—ืฉื•ื‘ ืขืœ ื”ื™ื™ืฉื•ื ืœืคื ื™ ืฉืืชื” ืžืงื“ื™ืฉ ื–ืžืŸ ืœื‘ื™ืฆื•ืขื•. ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘ืžื”ืœืš ื”ื™ื™ืฉื•ื ืืชื” ืฆืจื™ืš ืœื™ืฆื•ืจ ืžื—ืœืงื•ืช ื•ืœื”ืžืฆื™ื ืืช ื”ืื™ื ื˜ืจืืงืฆื™ื” ืฉืœื”ื. ื•ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื™ื™ืฆื•ื’ ื—ื–ื•ืชื™ ืฉืœ ื–ื” ื™ื›ื•ืœ ืœืขื–ื•ืจ ืœืคืชื•ืจ ืืช ื”ื‘ืขื™ื” ื‘ืฆื•ืจื” ื”ื ื›ื•ื ื” ื‘ื™ื•ืชืจ. ื–ื” ื”ืžืงื•ื ืฉื‘ื• UML ืขื•ื–ืจืช ืœื ื• .

ืžื” ื–ื” UML?

ืื ืชืกืชื›ืœ ืขืœ ืชืžื•ื ื•ืช ื‘ืžื ื•ืขื™ ื—ื™ืคื•ืฉ, ื™ืชื‘ืจืจ ืฉ- UML ื”ื•ื ืžืฉื”ื• ืขืœ ื“ื™ืื’ืจืžื•ืช, ื—ื™ืฆื™ื ื•ืžืจื•ื‘ืขื™ื. ืžื” ืฉื—ืฉื•ื‘ ื”ื•ื ืฉ-UML ืžืชื•ืจื’ื ืœ- Unified Modeling Language . ื”ืžื™ืœื” ืžืื•ื—ื“ืช ื—ืฉื•ื‘ื” ื›ืืŸ. ื›ืœื•ืžืจ, ื”ืชืžื•ื ื•ืช ืฉืœื ื• ื™ื•ื‘ื ื• ืœื ืจืง ืœื ื•, ืืœื ื’ื ืœืื—ืจื™ื ืฉืžื›ื™ืจื™ื ืืช UML. ืžืกืชื‘ืจ ืฉื–ื• ืฉืคื” ื‘ื™ื ืœืื•ืžื™ืช ืœืฆื™ื•ืจ ื“ื™ืื’ืจืžื•ืช.

UML: ืžื”ืชื™ืื•ืจื™ื” ืœืคืจืงื˜ื™ืงื” - 1

ื›ืคื™ ืฉืื•ืžืจืช ื•ื™ืงื™ืคื“ื™ื”

UML ื”ื™ื ืฉืคืช ืชื™ืื•ืจ ื’ืจืคื™ืช ืœืžื™ื“ื•ืœ ืื•ื‘ื™ื™ืงื˜ื™ื ื‘ืคื™ืชื•ื— ืชื•ื›ื ื”, ืžื•ื“ืœื™ื ืฉืœ ืชื”ืœื™ื›ื™ื ืขืกืงื™ื™ื, ืขื™ืฆื•ื‘ ืžืขืจื›ื•ืช ื•ื”ืฆื’ืช ืžื‘ื ื™ื ืืจื’ื•ื ื™ื™ื.
ื”ื“ื‘ืจ ื”ืžืขื ื™ื™ืŸ ื‘ื™ื•ืชืจ ืฉืœื ื›ื•ืœื ื—ื•ืฉื‘ื™ื ืขืœื™ื• ืื• ืžื‘ื™ื ื™ื ื”ื•ื ืฉืœ-UML ื™ืฉ ืžืคืจื˜ื™ื. ื™ืชืจ ืขืœ ื›ืŸ, ื™ืฉ ืืคื™ืœื• ืžืคืจื˜ UML2. ืคืจื˜ื™ื ื ื•ืกืคื™ื ืขืœ ื”ืžืคืจื˜ ื ื™ืชืŸ ืœืžืฆื•ื ื‘ืืชืจ ืงื‘ื•ืฆืช ื ื™ื”ื•ืœ ืื•ื‘ื™ื™ืงื˜ื™ื . ืœืžืขืฉื”, ื”ืงื‘ื•ืฆื” ื”ื–ื• ืžืคืชื—ืช ืžืคืจื˜ื™ UML. ืžืขื ื™ื™ืŸ ื’ื ืฉ-UML ืื™ื ื• ืžื•ื’ื‘ืœ ืœืชื™ืื•ืจ ืžื‘ื ื” ื”ืฉื™ืขื•ืจื™ื. ื™ืฉื ื ืกื•ื’ื™ื ืจื‘ื™ื ืฉืœ ื“ื™ืื’ืจืžื•ืช UML. ืชื™ืื•ืจ ืงืฆืจ ืฉืœ ืกื•ื’ื™ ื“ื™ืื’ืจืžื•ืช UML ื ื™ืชืŸ ืœืจืื•ืช ื‘ืื•ืชื” ื•ื™ืงื™ืคื“ื™ื”: ื“ื™ืื’ืจืžื•ืช UML ืื• ื‘ืกืจื˜ื•ืŸ ืฉืœ ื˜ื™ืžื•ืจ ื‘ื˜ื™ืจืฉื™ื ื•ื‘ ืกืงื™ืจืช ื“ื™ืื’ืจืžื•ืช UML . UML ื ืžืฆื ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื’ื ืœืชื™ืื•ืจ ืชื”ืœื™ื›ื™ื ืฉื•ื ื™ื, ืœืžืฉืœ ื›ืืŸ: ื›ื ื™ืกื” ื™ื—ื™ื“ื” ื‘ืืžืฆืขื•ืช JWT . ืื ื ื—ื–ื•ืจ ืœืฉื™ืžื•ืฉ ื‘ื“ื™ืื’ืจืžื•ืช ืžื—ืœืงื•ืช UML, ื›ื“ืื™ ืœืฉื™ื ืœื‘ ืœืกืคืจ Head First: Design Patterns , ืฉื‘ื• ื”ื“ืคื•ืกื™ื ืžืื•ื™ืจื™ื ืขืœ ื™ื“ื™ ืื•ืชื ื“ื™ืื’ืจืžื•ืช UML. ืžืกืชื‘ืจ ืฉืื›ืŸ ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘-UML. ื•ืžืกืชื‘ืจ ืฉื™ื“ืข ื•ื”ื‘ื ื” ืฉืœ ื”ื™ื™ืฉื•ื ืฉืœื• ื”ื ืžื™ื•ืžื ื•ืช ืฉื™ืžื•ืฉื™ืช ืœืžื“ื™.

ื™ื™ืฉื•ื

ื‘ื•ืื• ื ืกืชื›ืœ ืื™ืš ืืชื” ื™ื›ื•ืœ ืœืขื‘ื•ื“ ืขื ืื•ืชื• UML ืžื”-IDE. ื‘ื•ืื• ื ื™ืงื— ืืช IntelliJ Idea ื›-IDE . ืื ืื ื• ืžืฉืชืžืฉื™ื ื‘- IntelliJ Idea Ultimate , ืื– ื™ื•ืชืงืŸ ืœื ื• ืืช ื”ืชื•ืกืฃ " ืชืžื™ื›ื” UML " ืžื”ืงื•ืคืกื”. ื–ื” ืžืืคืฉืจ ืœืš ืœื™ืฆื•ืจ ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ื“ื™ืื’ืจืžื•ืช ืžื—ืœืงื•ืช ื™ืคื•ืช. ืœื“ื•ื’ืžื”, ื‘ืืžืฆืขื•ืช Ctrl+N ืื• ืคืจื™ื˜ ื”ืชืคืจื™ื˜ "ื ื•ื•ื˜" -> "Class" ืื ื• ืขื•ื‘ืจื™ื ืœืžื—ืœืงื” ArrayList . ื›ืขืช, ื“ืจืš ืชืคืจื™ื˜ ื”ื”ืงืฉืจ ืฉืœ ืฉื ื”ื›ื™ืชื”, ื‘ื—ืจ "ื“ื™ืื’ืจืžื”" -> "ื”ืฆื’ ื“ื™ืื’ืจืžื” ืงื•ืคืฆืช". ื›ืชื•ืฆืื” ืžื›ืš, ืื ื• ืžืงื‘ืœื™ื ืชืจืฉื™ื ื™ืคื”:
UML: ืžืชื™ืื•ืจื™ื” ืœืคืจืงื˜ื™ืงื” - 2
ืื‘ืœ ืžื” ืื ืืชื” ืจื•ืฆื” ืœืฆื™ื™ืจ ืืช ื–ื” ื‘ืขืฆืžืš, ื•ืื™ืŸ ืœืš ืืคื™ืœื• ืืช ื”ื’ืจืกื” ื”ืื•ืœื˜ื™ืžื˜ื™ื‘ื™ืช ืฉืœ Idea? ืื ืื ื• ืžืฉืชืžืฉื™ื ื‘- IntelliJ Idea Community Edition, ืื™ืŸ ืœื ื• ื‘ืจื™ืจื” ืื—ืจืช. ื›ื“ื™ ืœืขืฉื•ืช ื–ืืช, ืขืœื™ืš ืœื”ื‘ื™ืŸ ื›ื™ืฆื“ ื‘ื ื•ื™ ื“ื™ืื’ืจืžืช UML ื›ื–ื•. ืจืืฉื™ืช, ื ืฆื˜ืจืš ืœื”ืชืงื™ืŸ ืืช Graphviz . ื–ื•ื”ื™ ืงื‘ื•ืฆื” ืฉืœ ื›ืœื™ ืขื–ืจ ืœื”ืžื—ืฉืช ื’ืจืคื™ื. ื”ื•ื ืžืฉืžืฉ ืืช ื”ืชื•ืกืฃ ืฉื‘ื• ื ืฉืชืžืฉ. ืœืื—ืจ ื”ื”ืชืงื ื”, ืขืœื™ืš ืœื”ื•ืกื™ืฃ ืืช ืกืคืจื™ื™ืช bin ืžืกืคืจื™ื™ืช ื”ื”ืชืงื ื” ืฉืœ Graphviz ืœืžืฉืชื ื” ื”ืกื‘ื™ื‘ื” PATH ืฉืœืš . ืœืื—ืจ ืžื›ืŸ, ื‘- IntelliJ Idea, ื‘ื—ืจ ืงื•ื‘ืฅ -> ื”ื’ื“ืจื•ืช ืžื”ืชืคืจื™ื˜. ื‘ื—ืœื•ืŸ "ื”ื’ื“ืจื•ืช", ื‘ื—ืจ ื‘ืงื˜ื’ื•ืจื™ื™ืช "ืชื•ืกืคื™ื", ืœื—ืฅ ืขืœ ื›ืคืชื•ืจ "ืขื™ื•ืŸ ื‘ืžืื’ืจื™ื" ื•ื”ืชืงืŸ ืืช ื”ืคืœืื’ื™ืŸ ืœืฉื™ืœื•ื‘ PlantUML . ืžื“ื•ืข PlantUML ื›ืœ ื›ืš ื˜ื•ื‘ ? ื”ื•ื ืžืฉืชืžืฉ ื‘ืฉืคืช ืชื™ืื•ืจ ื’ืจืฃ ื”ื ืงืจืืช " ื ืงื•ื“ื” " ื›ื“ื™ ืœืชืืจ UML ื•ื–ื” ืžืืคืฉืจ ืœื• ืœื”ื™ื•ืช ื™ื•ืชืจ ืื•ื ื™ื‘ืจืกืœื™, ื›ื™... ืฉืคื” ื–ื• ืžืฉืžืฉืช ืœื ืจืง ืขืœ ื™ื“ื™ PlantUML. ื™ืชืจ ืขืœ ื›ืŸ, ื›ืœ ืžื” ืฉืื ื• ืขื•ืฉื™ื ืœื”ืœืŸ ื™ื›ื•ืœ ืœื”ื™ืขืฉื•ืช ืœื ืจืง ื‘-IDE, ืืœื ื’ื ื‘ืฉื™ืจื•ืช ื”ืžืงื•ื•ืŸ planttext.com . ืœืื—ืจ ื”ืชืงื ืช ื”ืชื•ืกืฃ PlantUML, ื ื•ื›ืœ ืœื™ืฆื•ืจ ื“ื™ืื’ืจืžื•ืช UML ื“ืจืš "ืงื•ื‘ืฅ" -> "ื—ื“ืฉ". ื‘ื•ืื• ื ื™ืฆื•ืจ ืชืจืฉื™ื ืžืกื•ื’ "ืžื—ืœืงื” UML". ื‘ืžื”ืœืš ืชื”ืœื™ืš ื–ื”, ื ื•ืฆืจืช ืื•ื˜ื•ืžื˜ื™ืช ืชื‘ื ื™ืช ืขื ื“ื•ื’ืžื”. ื‘ื•ืื• ื ืžื—ืง ืืช ื”ืชื•ื›ืŸ ืฉืœื• ื•ื ื™ืฆื•ืจ ืžืฉืœื ื•, ื—ืžื•ืฉ ื‘ืžืืžืจ ืž-Habr: ื™ื—ืกื™ ื›ื™ืชื” - ืž-UML ืœืงื•ื“ . ื•ื›ื“ื™ ืœื”ื‘ื™ืŸ ื›ื™ืฆื“ ืœืชืืจ ื–ืืช ื‘ื˜ืงืกื˜, ื ื™ืงื— ืืช ื”ืžื“ืจื™ืš ืฉืœ PlantUML: plantuml class-diagram . ืžืžืฉ ื‘ื”ืชื—ืœื” ื™ืฉ ื˜ื‘ืœื” ื”ืžืจืื” ื›ื™ืฆื“ ื™ืฉ ืœืชืืจ ื—ื™ื‘ื•ืจื™ื:
UML: ืžืชื™ืื•ืจื™ื” ืœืคืจืงื˜ื™ืงื” - 3
ืื ื• ื™ื›ื•ืœื™ื ื’ื ืœื”ืกืชื›ืœ ืขืœ ื”ืงืฉืจื™ื ืขืฆืžื ื›ืืŸ: " ื™ื—ืกื™ื ื‘ื™ืŸ ืฉื™ืขื•ืจื™ื ื‘-UML. ื“ื•ื’ืžืื•ืช ." ื‘ื”ืชื‘ืกืก ืขืœ ื—ื•ืžืจื™ื ืืœื”, ื‘ื•ืื• ื ืชื—ื™ืœ ืœื™ืฆื•ืจ ื“ื™ืื’ืจืžืช UML ืฉืœื ื•. ื‘ื•ืื• ื ื•ืกื™ืฃ ืืช ื”ืชื•ื›ืŸ ื”ื‘ื ื”ืžืชืืจ ืืช ืฉืชื™ ื”ืฉื™ืขื•ืจื™ื:

@startuml
class ArrayList {
}
class LinkedList {
}
@enduml
ื›ื“ื™ ืœืจืื•ืช ืืช ื”ืชื•ืฆืื” ื‘-Idea, ื‘ื—ืจ "ืชืฆื•ื’ื”" -> "ื›ืœื™ Windows" -> "PlantUML". ืจืง ื ืงื‘ืœ ืฉื ื™ ืจื™ื‘ื•ืขื™ื ื”ืžื™ื™ืฆื’ื™ื ื›ื™ืชื•ืช. ื›ืคื™ ืฉืื ื• ื™ื•ื“ืขื™ื, ืฉืชื™ ื”ืžื—ืœืงื•ืช ื”ืœืœื• ืžื™ื™ืฉืžื•ืช ืืช ืžืžืฉืง List. ืงืฉืจ ืžืขืžื“ื™ ื–ื” ื ืงืจื ื™ื™ืฉื•ื. ื›ื“ื™ ืœืชืืจ ืงืฉืจ ื›ื–ื”, ื”ืฉืชืžืฉ ื‘ื—ืฅ ืขื ืงื• ืžืงื•ื•ืงื•. ื‘ื•ืื• ื ืชืืจ ืืช ื–ื”:
interface List
List <|.. ArrayList
List <|.. LinkedList
List- ืื—ืช ืžื›ื™ืชื•ืช ื”ื™ืœื“ื™ื Collection. ื›ืœื•ืžืจ, ื”ื•ื ื™ื•ืจืฉ ืžืื•ืกืฃ. ื”ืงืฉืจ ื”ื–ื” ื ืงืจื ื”ื›ืœืœื”. ื–ื” ื ืจืื” ื›ืžื• ื—ืฅ ืขื ืงื• ืจืฆื™ืฃ ืงื‘ื•ืข. ื‘ื•ืื• ื ืชืืจ ืืช ื–ื”:
interface Collection
Collection <|-- List
ืขื‘ื•ืจ ืกื•ื’ ื”ื—ื™ื‘ื•ืจ ื”ื‘ื, ื”ื•ืกืฃ ืœืชื™ืื•ืจ ื”ื›ื™ืชื” ArrayListืขืจืš ืขืœ ืžืขืจืš ื”ืืœืžื ื˜ื™ื ื”ืคืจื˜ื™ ืฉืœ ื”ื—ื‘ื™ืœื” :
~Object[] elementData
ืขื›ืฉื™ื• ืื ื—ื ื• ืจื•ืฆื™ื ืœื”ืจืื•ืช ืžื” ArrayListืžื›ื™ืœ ื›ืžื” ืื•ื‘ื™ื™ืงื˜ื™ื. ื‘ืžืงืจื” ื–ื”, ืกื•ื’ ื”ื—ื™ื‘ื•ืจ ื™ื”ื™ื” ืฆื‘ื™ืจื” . ื”ื™ื—ื™ื“ื” ื‘ืžืงืจื” ื–ื” ื”ื™ื ArrayList, ื›ื™ ื”ื•ื ืžื›ื™ืœ ื—ืคืฆื™ื ืื—ืจื™ื. ืื ื• ื‘ื•ื—ืจื™ื ื‘ืฆื‘ื™ืจื” ืžื›ื™ื•ื•ืŸ ืฉืื•ื‘ื™ื™ืงื˜ื™ื ื‘ืจืฉื™ืžื” ื™ื›ื•ืœื™ื ืœื—ื™ื•ืช ืœืœื ื”ืจืฉื™ืžื”: ื”ื ืื™ื ื ื—ืœืงื™ื ืื™ื ื˜ื’ืจืœื™ื™ื ืžืžื ื”. ืžืฉืš ื”ื—ื™ื™ื ืฉืœื”ื ืื™ื ื• ืงืฉื•ืจ ืœืื•ืจืš ื”ื—ื™ื™ื ืฉืœ ื”ืจืฉื™ืžื”. ืื’ืจื’ื˜ ืžืชื•ืจื’ื ืžืœื˜ื™ื ื™ืช ื›"ืžื•ืจื›ื‘", ื›ืœื•ืžืจ ืžืฉื”ื• ืฉืžื•ืจื›ื‘ ืžืžืฉื”ื•. ืœื“ื•ื’ืžื”, ื‘ื—ื™ื™ื, ื™ืฉ ื™ื—ื™ื“ืช ืฉืื™ื‘ื”, ื”ืžื•ืจื›ื‘ืช ืžืžืฉืื‘ื” ื•ืžื ื•ืข. ื ื™ืชืŸ ืœืคืจืง ืืช ื”ื™ื—ื™ื“ื” ืขืฆืžื”, ื•ืœื”ืฉืื™ืจ ื—ืœืง ืžืžืจื›ื™ื‘ื™ื”. ืœืžืฉืœ, ืœืžื›ื•ืจ ืื• ืœื”ื›ื ื™ืก ืœื™ื—ื™ื“ื” ืื—ืจืช. ื›ืš ื’ื ื”ืจืฉื™ืžื”. ื•ื–ื” ืžืชื‘ื˜ื ื‘ืฆื•ืจื” ืฉืœ ื™ื”ืœื•ื ืจื™ืง ืœื™ื“ ื”ื™ื—ื™ื“ื” ื•ืงื• ืžืชืžืฉืš. ื‘ื•ืื• ื ืชืืจ ืืช ื–ื” ื›ืš:
class Object{
}
ArrayList o- Object
ื›ืขืช ืื ื• ืจื•ืฆื™ื ืœื”ืจืื•ืช ืฉื‘ื ื™ื’ื•ื“ ืœ- ArrayList, ื”ืžื—ืœืงื” LinkedListืžื›ื™ืœื” Nodeืงื•ื ื˜ื™ื™ื ืจื™ื ืฉืžืชื™ื™ื—ืกื™ื ืœื ืชื•ื ื™ื ืžืื•ื—ืกื ื™ื. ื‘ืžืงืจื” ื–ื”, Nodeื”ื ื—ืœืง ืžืขืฆืžื LinkedListื•ืื™ื ื ื™ื›ื•ืœื™ื ืœื—ื™ื•ืช ื‘ื ืคืจื“. Nodeืื™ื ื• ืชื•ื›ืŸ ืžืื•ื—ืกืŸ ื™ืฉื™ืจื•ืช, ืืœื ืžื›ื™ืœ ืจืง ืงื™ืฉื•ืจ ืืœื™ื•. ืœื“ื•ื’ืžื”, ื›ืืฉืจ ืื ื• ืžื•ืกื™ืคื™ื ืœืฉื•ืจื” LinkedList, ืื ื• ืžื•ืกื™ืคื™ื ื—ื“ืฉ Node, ื”ืžื›ื™ืœ ืงื™ืฉื•ืจ ืœืฉื•ืจื” ื–ื•, ื•ื›ืŸ ืงื™ืฉื•ืจ ืœืฉื•ืจื” ื”ืงื•ื“ืžืช ื•ื”ื‘ืื” Node. ืกื•ื’ ื–ื” ืฉืœ ืชืงืฉื•ืจืช ื ืงืจื ืงื•ืžืคื•ื–ื™ืฆื™ื” . ื›ื“ื™ ืœื”ืฆื™ื’ ืงื•ืžืคื•ื–ื™ื˜ (ื›ื–ื” ื”ืžื•ืจื›ื‘ ืžื—ืœืงื™ื), ืžืฆื™ื™ืจื™ื ื™ื”ืœื•ื ืฆื‘ืขื•ื ื™, ื›ืฉืงื• ืจืฆื™ืฃ ืžื•ื‘ื™ืœ ืืœื™ื•. ื‘ื•ื ื ื›ืชื•ื‘ ืืช ื–ื” ื›ื”ืฆื’ืช ื˜ืงืกื˜ ืฉืœ ื”ื—ื™ื‘ื•ืจ:
class Node{
}
LinkedList *-- Node
ื•ืขื›ืฉื™ื• ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืœืžื•ื“ ื›ื™ืฆื“ ืœื”ืฆื™ื’ ืกื•ื’ ื—ืฉื•ื‘ ื ื•ืกืฃ ืฉืœ ืžืขืจื›ืช ื™ื—ืกื™ื - ื™ื—ืกื™ ืชืœื•ืช . ื”ื•ื ืžืฉืžืฉ ื›ืืฉืจ ืžื—ืœืงื” ืื—ืช ืžืฉืชืžืฉืช ื‘ืžื—ืœืงื” ืื—ืจืช, ืืš ื”ืžื—ืœืงื” ืื™ื ื” ืžื›ื™ืœื” ืืช ื”ืžื—ืœืงื” ื‘ืฉื™ืžื•ืฉ ื•ืื™ื ื” ืฆืืฆื ืฉืœื”. ืœื“ื•ื’ืžื”, LinkedListื”ื ArrayListื™ื•ื“ืขื™ื ืœื™ืฆื•ืจ ListIterator. ื‘ื•ืื• ื ืฆื™ื’ ืืช ื–ื” ื›ื—ืฆื™ื ืขื ืงื• ืžืงื•ื•ืงื•:
class ListIterator
ListIterator <... ArrayList : create
ListIterator <... LinkedList : create
ืื—ืจื™ ื›ืœ ื–ื” ื–ื” ื™ืจืื” ื›ืš:
UML: ืžืชื™ืื•ืจื™ื” ืœืคืจืงื˜ื™ืงื” - 4
ืืชื” ื™ื›ื•ืœ ืœืคืจื˜ ื›ืžื” ืฉืฆืจื™ืš. ื›ืœ ื”ื™ื™ืขื•ื“ื™ื ืžืฆื•ื™ื ื™ื ื›ืืŸ: " PlantUML - ืชืจืฉื™ื ืžื—ืœืงื” ". ื‘ื ื•ืกืฃ, ืื™ืŸ ืฉื•ื ื“ื‘ืจ ืขืœ ื˜ื‘ืขื™ ื‘ืฆื™ื•ืจ ื“ื™ืื’ืจืžื” ื›ื–ื•, ื•ื›ืืฉืจ ืขื•ื‘ื“ื™ื ืขืœ ื”ืžืฉื™ืžื•ืช ืฉืœืš, ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืจ ืื•ืชื• ื‘ืžื”ื™ืจื•ืช ื‘ื™ื“. ื–ื” ื™ืคืชื— ืืช ื›ื™ืฉื•ืจื™ ื”ื—ืฉื™ื‘ื” ืฉืœืš ื“ืจืš ืืจื›ื™ื˜ืงื˜ื•ืจืช ื™ื™ืฉื•ืžื™ื ื•ื™ืขื–ื•ืจ ืœืš ืœื–ื”ื•ืช ืคื’ืžื™ื ื‘ืžื‘ื ื” ื”ื›ื™ืชื” ื‘ืฉืœื‘ ืžื•ืงื“ื, ื‘ืžืงื•ื ืœืื—ืจ ืฉื‘ื™ืœืชืช ืืช ื”ื™ื•ื ื‘ื™ื™ืฉื•ื ื”ืžื•ื“ืœ ื”ืœื ื ื›ื•ืŸ. ืื ื™ ื—ื•ืฉื‘ ืฉื–ื• ืกื™ื‘ื” ื˜ื•ื‘ื” ืœื ืกื•ืช ืืช ื–ื”? )
UML: ืžืชื™ืื•ืจื™ื” ืœืคืจืงื˜ื™ืงื” - 5

ืื•ื˜ื•ืžืฆื™ื”

ื™ืฉื ืŸ ื“ืจื›ื™ื ืฉื•ื ื•ืช ืœื™ืฆื•ืจ ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ื“ื™ืื’ืจืžื•ืช PlantUML. ืœื“ื•ื’ืžื”, ืœ-Idea ื™ืฉ ืชื•ืกืฃ SketchIT , ืื‘ืœ ื”ื•ื ืœื ืžืฆื™ื™ืจ ืื•ืชื ื‘ืฆื•ืจื” ื ื›ื•ื ื”. ืœื“ื•ื’ืžื”, ื”ื™ื™ืฉื•ื ืฉืœ ืžืžืฉืงื™ื ืžืฆื•ื™ืจ ื‘ืฆื•ืจื” ืฉื’ื•ื™ื” (ืžื•ืฆื’ ื‘ืชื•ืจ ื™ืจื•ืฉื”). ื™ืฉื ืŸ ื’ื ื“ื•ื’ืžืื•ืช ื‘ืื™ื ื˜ืจื ื˜ ื›ื™ืฆื“ ืœื‘ื ื•ืช ืืช ื–ื” ืœืชื•ืš ืžื—ื–ื•ืจ ื”ื—ื™ื™ื ืฉืœ ื”ืคืจื•ื™ืงื˜ ืฉืœืš. ื ื ื™ื— ืฉื™ืฉ ื“ื•ื’ืžื” ืขื‘ื•ืจ Maven ื‘ืืžืฆืขื•ืช uml-java-docklet . ื›ื“ื™ ืœื”ืจืื•ืช ืื™ืš ื–ื” ื ืขืฉื”, ื ืฉืชืžืฉ ื‘- Maven Archetype ื›ื“ื™ ืœื™ืฆื•ืจ ื‘ืžื”ื™ืจื•ืช ืคืจื•ื™ืงื˜ ืฉืœ Maven. ื”ื‘ื” ื ื‘ืฆืข ืืช ื”ืคืงื•ื“ื”: mvn archetype:generate ื›ืฉืชืชื‘ืงืฉ ืœื‘ื—ื•ืจ ืžืกื ืŸ ( ื‘ื—ืจ ืžืกืคืจ ืื• ื”ื—ืœ ืžืกื ืŸ ), ื”ืฉืืจ ืืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืขืœ ื™ื“ื™ ืœื—ื™ืฆื” ืคืฉื•ื˜ื” ืขืœ Enter. ื–ื” ืชืžื™ื“ ื™ื”ื™ื” " maven-archetype-quickstart ". ื‘ื—ืจ ืืช ื”ื’ืจืกื” ื”ืขื“ื›ื ื™ืช ื‘ื™ื•ืชืจ. ืœืื—ืจ ืžื›ืŸ, ืื ื• ืขื•ื ื™ื ืขืœ ื”ืฉืืœื•ืช ื•ืžืฉืœื™ืžื™ื ืืช ื™ืฆื™ืจืช ื”ืคืจื•ื™ืงื˜:
UML: ืžืชื™ืื•ืจื™ื” ืœืคืจืงื˜ื™ืงื” - 6
ืžื›ื™ื•ื•ืŸ ืฉืžื™ื™ื‘ืŸ ืื™ื ื• ื”ืžื•ืงื“ ืฉืœ ืžืืžืจ ื–ื”, ื ื™ืชืŸ ืœืžืฆื•ื ืชืฉื•ื‘ื•ืช ืœืฉืืœื•ืช ืฉืœืš ื‘- Maven ื‘ืžืจื›ื– ื”ืžืฉืชืžืฉื™ื ืฉืœ ืžื™ื™ื‘ืŸ . ื‘ืคืจื•ื™ืงื˜ ืฉื ื•ืฆืจ, ืคืชื— ืืช ืงื•ื‘ืฅ ืชื™ืื•ืจ ื”ืคืจื•ื™ืงื˜, pom.xml, ืœืขืจื™ื›ื” . ื‘ื•ืื• ื ืขืชื™ืง ืืช ื”ืชื•ื›ืŸ ืžื”ืชื™ืื•ืจ ืฉืœ ื”ืชืงื ืช uml-java-docklet ืœืชื•ื›ื• . ื”ื—ืคืฅ ื”ืžืฉืžืฉ ื‘ืชื™ืื•ืจ ืœื ื ืžืฆื ื‘ืžืื’ืจ ื”ืžืจื›ื–ื™ ืฉืœ ืžื™ื™ื‘ืŸ. ืื‘ืœ ื–ื” ืขื‘ื“ ื‘ืฉื‘ื™ืœื™ ืขื ื–ื”: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0 . ื›ืœื•ืžืจ, ื‘ืชื™ืื•ืจ ื”ื–ื” ืืชื” ืจืง ืฆืจื™ืš ืœื”ื—ืœื™ืฃ ืืช groupId ืž- " info.leadinglight " ื‘- " com.chfourie " ื•ืœื”ื’ื“ื™ืจ ืืช ื”ื’ืจืกื” ืœ- " 1.0.0 ". ืœืื—ืจ ืžื›ืŸ, ื ื•ื›ืœ ืœื‘ืฆืข ืืช ื”ืคืงื•ื“ื•ืช ื”ืœืœื• ื‘ืกืคืจื™ื™ื” ืฉื‘ื” ื ืžืฆื ื”ืงื•ื‘ืฅ pom.xmlmvn clean install : ื• mvn javadoc:javadoc. ื›ืขืช, ืื ื ืคืชื— ืืช ื”ืชื™ืขื•ื“ ืฉื ื•ืฆืจ (explorer target\site\apidocs\index.html), ื ืจืื” ืืช ื“ื™ืื’ืจืžื•ืช ื”-UML. ืื’ื‘, ื”ื™ื™ืฉื•ื ื›ื‘ืจ ืžื•ืฆื’ ื›ื”ืœื›ื” ื›ืืŸ)

ืกื™ื›ื•ื

ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, UML ืžืืคืฉืจ ืœืš ืœื“ืžื™ื™ืŸ ืืช ืžื‘ื ื” ื”ื™ื™ืฉื•ื ืฉืœืš. ื™ืชืจ ืขืœ ื›ืŸ, UML ืื™ื ื• ืžื•ื’ื‘ืœ ืจืง ืœื–ื”. ื‘ืืžืฆืขื•ืช UML ืชื•ื›ืœื• ืœืชืืจ ืชื”ืœื™ื›ื™ื ืฉื•ื ื™ื ื‘ืชื•ืš ื”ื—ื‘ืจื” ืฉืœื›ื ืื• ืœืชืืจ ืืช ื”ืชื”ืœื™ืš ื”ืขืกืงื™ ืฉื‘ืชื•ื›ื• ืคื•ืขืœืช ื”ืคื•ื ืงืฆื™ื” ืฉืืชื ื›ื•ืชื‘ื™ื. ืขื“ ื›ืžื” UML ืฉื™ืžื•ืฉื™ ืขื‘ื•ืจืš ื‘ืื•ืคืŸ ืื™ืฉื™, ืืชื” ื™ื›ื•ืœ ืœื”ื—ืœื™ื˜, ืื‘ืœ ืœืงื—ืช ืืช ื”ื–ืžืŸ ืœืงืจื•ื ืื•ืชื• ื‘ื™ืชืจ ืคื™ืจื•ื˜ ื™ื”ื™ื” ืฉื™ืžื•ืฉื™ ื‘ื›ืœ ืžืงืจื”. #ื•ื™ืืฆ'ืกืœื‘
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION