แผนภาพคลาส UML


145

ฉันกำลังสร้างแผนภาพคลาส แอตทริบิวต์ของคลาสเป็นการแจงนับ ฉันจะทำแบบนี้ได้อย่างไร โดยปกติคุณจะทำสิ่งนี้:

- name : string

แต่เราจะทำสิ่งนี้กับ enum ได้อย่างไร

คำตอบ:


198

พวกมันแสดงให้เห็นอย่างนี้:

_______________________
|   <<enumeration>>   |
|    DaysOfTheWeek    |
|_____________________|
| Sunday              |
| Monday              |
| Tuesday             |
| ...                 |
|_____________________|

แล้วก็มีการเชื่อมโยงระหว่างสิ่งนั้นกับชั้นเรียนของคุณ


16
การแจกแจงจริง ๆ แล้วทำงานเหมือนกับประเภทข้อมูลมากกว่าคลาสใน UML ดังนั้นโดยทั่วไปการเชื่อมโยงจะไม่แสดงมากกว่าที่เป็นหากคุณประกาศแอตทริบิวต์ให้เป็นประเภทจำนวนเต็ม หากเครื่องมือสร้างแบบจำลองของคุณมีการสนับสนุนอย่างชัดเจนสำหรับการแจกแจงคุณควรใช้และใช้เครื่องหมาย + + <<enumeration>> stereotype เพื่อเป็นทางเลือกหากจำเป็น
Tom Morris

คุณสามารถบอกได้ที่ไหนว่าฉันสามารถหา <<enumeration>> stereotype สำหรับ ArgoUML ได้ที่ไหน
Timofey

@Tim ArgoUML ได้รับการสนับสนุนชั้นหนึ่งสำหรับการแจกแจงดังนั้นจึงไม่จำเป็นต้องใช้กฎตายตัว
Tom Morris

<<enumeration>>จริง ๆ แล้วไม่ใช่แบบแผน แต่เป็นคำหลัก น่าเสียดายที่ผู้เขียน UML ไม่ได้สร้างความแตกต่างที่มองเห็นได้
qwerty_so

68

หากเครื่องมือสร้างแบบจำลอง UML ของคุณสนับสนุนการระบุการแจงนับคุณควรใช้สิ่งนั้น มันอาจจะง่ายกว่าที่จะทำและมันจะทำให้ความหมายของแบบจำลองของคุณแข็งแกร่งขึ้น สายตาผลลัพธ์จะคล้ายกันมากกับคลาสที่มี<<enumeration>>กฎตายตัว แต่ในรูปแบบ UML การแจงนับเป็นจริงแยกประเภท (เมตา)

+---------------------+
|   <<enumeration>>   |
|    DayOfTheWeek     |
|_____________________|
| Sunday              |
| Monday              |
| Tuesday             |
| ...                 |
+---------------------+

เมื่อมีการกำหนดไว้คุณสามารถใช้เป็นประเภทของแอตทริบิวต์เช่นเดียวกับประเภทข้อมูลหรือชื่อหนึ่งในคลาสของคุณเอง

+---------------------+
|        Event        |
|_____________________|
| day : DayOfTheWeek  |
| ...                 |
+---------------------+

หากคุณกำลังใช้ ArgoEclipse หรือ ArgoUML จะมีเมนูแบบเลื่อนลงบนแถบเครื่องมือที่เลือกระหว่างประเภทข้อมูลการแจกแจงสัญญาณ ฯลฯ ที่จะช่วยให้คุณสร้างการแจกแจงของคุณเอง ช่องที่โดยปกติจะมีแอททริบิวต์นั้นสามารถบรรจุด้วย EnumerationLiterals สำหรับค่าของการแจงนับของคุณ

นี่คือภาพของตัวอย่างที่แตกต่างกันเล็กน้อยใน ArgoUML: ป้อนคำอธิบายรูปภาพที่นี่


7
ขอบคุณสำหรับภาพหน้าจอของ ArgoUML
Petri Tuononen

1

โดยทั่วไปแล้วคุณสร้างแบบจำลอง enum เองเป็นคลาสที่มีenumกฎตายตัว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.