Page 56 - วิศวกรรมซอฟต์แวร์
P. 56
7-46 วิศวกรรมซอฟต์แวร์
4.2 การก�ำหนดการเข้าถึงแบบป้องกัน (protected) ท�ำได้โดยใช้เครื่องหมาย # หน้าแอตทริบิวต์หรือ
โอเปอเรชั่น เพ่ือให้สามารถเข้าถึงได้ภายในคลาสและจากคลาสที่ท�ำการสืบทอดคุณสมบัติ (inherit) ไปเท่าน้ัน การ
ก�ำหนดการเข้าถึงในลักษณะน้ีจะสงวนไว้ส�ำหรับการสืบทอดคุณสมบัติหรือการระบุคุณลักษณะท่ัวไป (generaliza-
tion) หรือการระบุความเฉพาะเจาะจง (specialization) โดยเฉพาะเท่านั้น
package1 ClassInSamePackage
BlogAccount
#creationDate
aMethod()
package2 SpecializedClassInAnotherPackage
ClassInAnotherPackage
ภาพที่ 7.33 การกำ�หนดการเข้าถึงแบบปอ้ งกนั
ที่มา: Kim Hamilton and Russell Miles. Learning UML 2.0. Figure 4-8.
จากภาพที่ 7.33 เป็นการก�ำหนดการเข้าถึงแบบป้องกันให้กับแอตทริบิวต์ช่ือ “creationDate” จึงท�ำให้
สามารถเข้าถึงได้จากเมธอดช่ือ “aMethod()” ท่ีอยู่ในคลาสเดียวกัน และสามารถเข้าถึงได้จากคลาสที่สืบทอดท่ีอยู่
ต่างแพ็คเก็จกัน ก็คือคลาสช่ือ “SpecializedClassInAnotherPackage” แต่ไม่สามารถเข้าถึงได้จากคลาสใน
แพ็คเก็จเดียวกัน นั่นคือ คลาสชื่อ “ClassInSamePackage” รวมถึงไม่สามารถเข้าถึงได้จากคลาสในแพ็คเก็จอ่ืน
จากในภาพ คือ คลาสชื่อ “ClassInAnotherPackage”