วัตถุที่ไม่เปลี่ยนรูปอาจมีประโยชน์ใน แอปพลิเคชันแบบมัลติเธรด หลายเธรดสามารถดำเนินการกับข้อมูลที่แสดงโดยอ็อบเจ็กต์ที่ไม่เปลี่ยนรูปโดยไม่ต้องกังวลว่าข้อมูลจะถูกเปลี่ยนโดยเธรดอื่น ออบเจ็กต์ที่ไม่เปลี่ยนรูปจึงถือว่าปลอดภัยสำหรับเธรดมากกว่าอ็อบเจ็กต์ที่ไม่เปลี่ยน
จุดประสงค์ของวัตถุที่ไม่เปลี่ยนรูปคืออะไร
การพึ่งพาสูงสุดกับวัตถุที่ไม่เปลี่ยนรูปเป็นที่ยอมรับกันอย่างแพร่หลายในฐานะ กลยุทธ์ด้านเสียงสำหรับการสร้างโค้ดที่เรียบง่ายและเชื่อถือได้ ออบเจ็กต์ที่ไม่เปลี่ยนรูปมีประโยชน์อย่างยิ่งในแอปพลิเคชันที่ทำงานพร้อมกัน เนื่องจากไม่สามารถเปลี่ยนสถานะได้ จึงไม่สามารถเสียหายจากการรบกวนของเธรดหรือตรวจพบในสถานะที่ไม่สอดคล้องกัน
วัตถุใดควรเรียกว่าไม่เปลี่ยนรูป
วัตถุที่ไม่เปลี่ยนรูปคือ วัตถุธรรมดาที่สถานะ (ข้อมูลของวัตถุ) ไม่สามารถเปลี่ยนแปลงได้หลังการก่อสร้าง ตัวอย่างของวัตถุที่ไม่เปลี่ยนรูปจาก JDK ได้แก่ String และ Integer ออบเจ็กต์ที่ไม่เปลี่ยนรูปทำให้โปรแกรมของคุณง่ายขึ้นอย่างมาก เนื่องจากพวกมันสร้าง ทดสอบ และใช้งานได้ง่าย
คุณจะใช้งานวัตถุที่ไม่เปลี่ยนรูปได้อย่างไร
ในการสร้างวัตถุที่ไม่เปลี่ยนรูป คุณต้องทำตามกฎง่ายๆ:
- อย่าเพิ่มวิธีตั้งค่าใดๆ
- ประกาศทุกช่องสุดท้ายและเป็นส่วนตัว
- หากฟิลด์เป็นวัตถุที่ไม่แน่นอน ให้สร้างสำเนาป้องกันสำหรับวิธี getter
- หากวัตถุที่เปลี่ยนแปลงได้ส่งผ่านไปยังตัวสร้างต้องถูกกำหนดให้กับฟิลด์ ให้สร้างสำเนาป้องกันของมัน
เราไปไหนใช้คลาสที่ไม่เปลี่ยนรูปใน Java หรือไม่
คลาสเปลี่ยนไม่ได้ทำให้ เขียนโปรแกรมพร้อมกันได้ง่ายขึ้น คลาสที่ไม่เปลี่ยนรูปทำให้แน่ใจว่าค่าจะไม่เปลี่ยนแปลงระหว่างการดำเนินการโดยไม่ใช้บล็อกที่ซิงโครไนซ์ การหลีกเลี่ยงการบล็อกการซิงโครไนซ์ทำให้คุณหลีกเลี่ยงภาวะชะงักงัน