ฉันกำลังสร้างแผนภาพคลาส แอตทริบิวต์ของคลาสเป็นการแจงนับ ฉันจะทำแบบนี้ได้อย่างไร โดยปกติคุณจะทำสิ่งนี้:
- name : string
แต่เราจะทำสิ่งนี้กับ enum ได้อย่างไร
ฉันกำลังสร้างแผนภาพคลาส แอตทริบิวต์ของคลาสเป็นการแจงนับ ฉันจะทำแบบนี้ได้อย่างไร โดยปกติคุณจะทำสิ่งนี้:
- name : string
แต่เราจะทำสิ่งนี้กับ enum ได้อย่างไร
คำตอบ:
พวกมันแสดงให้เห็นอย่างนี้:
_______________________
| <<enumeration>> |
| DaysOfTheWeek |
|_____________________|
| Sunday |
| Monday |
| Tuesday |
| ... |
|_____________________|
แล้วก็มีการเชื่อมโยงระหว่างสิ่งนั้นกับชั้นเรียนของคุณ
<<enumeration>>
จริง ๆ แล้วไม่ใช่แบบแผน แต่เป็นคำหลัก น่าเสียดายที่ผู้เขียน UML ไม่ได้สร้างความแตกต่างที่มองเห็นได้
หากเครื่องมือสร้างแบบจำลอง UML ของคุณสนับสนุนการระบุการแจงนับคุณควรใช้สิ่งนั้น มันอาจจะง่ายกว่าที่จะทำและมันจะทำให้ความหมายของแบบจำลองของคุณแข็งแกร่งขึ้น สายตาผลลัพธ์จะคล้ายกันมากกับคลาสที่มี<<enumeration>>
กฎตายตัว แต่ในรูปแบบ UML การแจงนับเป็นจริงแยกประเภท (เมตา)
+---------------------+
| <<enumeration>> |
| DayOfTheWeek |
|_____________________|
| Sunday |
| Monday |
| Tuesday |
| ... |
+---------------------+
เมื่อมีการกำหนดไว้คุณสามารถใช้เป็นประเภทของแอตทริบิวต์เช่นเดียวกับประเภทข้อมูลหรือชื่อหนึ่งในคลาสของคุณเอง
+---------------------+
| Event |
|_____________________|
| day : DayOfTheWeek |
| ... |
+---------------------+
หากคุณกำลังใช้ ArgoEclipse หรือ ArgoUML จะมีเมนูแบบเลื่อนลงบนแถบเครื่องมือที่เลือกระหว่างประเภทข้อมูลการแจกแจงสัญญาณ ฯลฯ ที่จะช่วยให้คุณสร้างการแจกแจงของคุณเอง ช่องที่โดยปกติจะมีแอททริบิวต์นั้นสามารถบรรจุด้วย EnumerationLiterals สำหรับค่าของการแจงนับของคุณ
นี่คือภาพของตัวอย่างที่แตกต่างกันเล็กน้อยใน ArgoUML:
โดยทั่วไปแล้วคุณสร้างแบบจำลอง enum เองเป็นคลาสที่มีenum
กฎตายตัว