วัน: 29 ธันวาคม 2018

UML: Dependency ความสัมพันธ์แบบอิงอาศัยกัน หากอีกฝั่งเปลี่ยนแปลงจะมีผลกระทบUML: Dependency ความสัมพันธ์แบบอิงอาศัยกัน หากอีกฝั่งเปลี่ยนแปลงจะมีผลกระทบ

ในโลกของการออกแบบซอฟต์แวร์เชิงวัตถุ การทำความเข้าใจถึงรูปแบบของ ‘ความสัมพันธ์’ ระหว่างคลาสหรือองค์ประกอบต่างๆ เป็นหัวใจสำคัญที่กำหนดเสถียรภาพ ความยืดหยุ่น และบำรุงรักษาได้ง่ายหรือไม่ of ระบบ เมื่อเราพูดถึง UML Dependency หรือ ‘การพึ่งพาทางโครงสร้าง’ เรากำลังกล่าวถึงสถานการณ์เฉพาะเจาะจงอย่างยิ่ง ที่ซึ่ง Class หนึ่งๆ ถูกใช้งานโดยอีก Class แต่ไม่มีระดับความเป็นเจ้าของหรือข้อจำกัดในการเปลี่ยนแปลงข้อมูลมากเท่ากับ Association ทั่วไป

แนวคิดหลักของ UML Dependency

Dependency คือภาวะที่ระบบส่วนหนึ่งจำเป็นต้องรู้ว่ามีอยู่และทำงานอย่างไร โดยทั่วไปแล้ว จะใช้เพื่อระบุเมื่อมีการนำ Type ของ Element A ไปใช้อย่างไม่เป็นทางการภายในโค้ดของ Element B นั่นหมายความว่า หากเกิดการแก้ไข API, เมธอด, ชื่อฟิลด์, หรือแม้กระทั่งลบคลาสต้นฉบับ (Source) อย่างสมบูรณ์ มันจะส่งผลให้ Code ในฝั่งผู้เรียก (Client/Consumer) เกิดปัญหาตามมาทันที นี่คือลักษณะเด่นที่สุดที่เราต้องตระหนัก:

  • Nature of Relationship: ไม่ใช่การเชื่อมโยงเชิงกายภาพหรือลำดับชั้น
  • Implication: การอ้างอิงนี้ทำให้ Component นั้นมีความเปราะบางสูงต่อการเปลี่ยนแปลงภายนอก

สัญลักษณ์และการตีความในแผนผังคลาส

ในทางปฏิบัติ แผนภาพ UML มักแสดง Dependencies ด้วยเส้นประที่มีหัวลูกศรเปิดรูปสามเหลี่ยม ($ ightarrow$) เพื่อเน้นย้ำถึงความเป็น