การทำให้เป็นอนุกรมใช้สำหรับการคงอยู่ใน Java มันอาจไม่เป็นไรที่จะคงอยู่วัตถุบางอย่างที่ใช้เป็นอันดับ แต่สำหรับวัตถุจำนวนมาก ORM ฐานข้อมูล ฯลฯ อาจดีกว่า ดูเหมือนว่าการจัดลำดับจะมีประโยชน์สำหรับงานขนาดเล็กเท่านั้น อาจเป็นฉันผิด ดังนั้นโปรดบอกฉันว่าข้อดีของการทำให้เป็นอนุกรมมากกว่าวิธีที่ไม่เป็นอนุกรมนั้นคืออะไร ควรใช้เมื่อใดและควรหลีกเลี่ยงเมื่อใด
คำถามนี้มาถึงใจหลังจากเห็นบทความ DZone Is Object Serialization Evil หรือไม่?
และนี่คือบรรทัดที่ก่อให้เกิดคำถามของฉัน:
หากคุณดูที่ Java และวัตถุเซสชันจะมีการใช้การทำให้เป็นอันดับวัตถุอย่างแท้จริง สมมติว่าเซสชันแอปพลิเคชันค่อนข้างสั้นซึ่งมีความหมายมากที่สุดในเวลาไม่กี่ชั่วโมงการทำให้เป็นอันดับวัตถุนั้นง่าย ๆ ได้รับการสนับสนุนอย่างดีและสร้างขึ้นในแนวคิด Java ของเซสชัน อย่างไรก็ตามเมื่อการคงอยู่ของข้อมูลเป็นระยะเวลานานอาจเป็นวันหรือหลายสัปดาห์และคุณต้องกังวลเกี่ยวกับแอพพลิเคชั่นใหม่ ๆ ตามที่นักพัฒนา Java ที่ดีทุกคนรู้ถ้าคุณวางแผนที่จะทำให้เป็นอันดับวัตถุแม้ในเซสชั่นคุณต้องมีซีเรียลไลซ์เซชั่น ID จริง ๆ (serialVersionUID) ไม่ใช่แค่ 1L และคุณต้องใช้อินเตอร์เฟส Serializable อย่างไรก็ตามผู้พัฒนาส่วนใหญ่ไม่ทราบกฎที่แท้จริงที่อยู่เบื้องหลังกระบวนการดีซีเรียลไลเซชั่น Java หากวัตถุของคุณมีการเปลี่ยนแปลงมากกว่าแค่การเพิ่มเขตข้อมูลอย่างง่ายไปยังวัตถุ เป็นไปได้ว่า Java ไม่สามารถทำการ deserialize วัตถุได้อย่างถูกต้องแม้ว่า ID ซีเรียลไลซ์เซชั่นจะไม่เปลี่ยนแปลง ทันใดนั้นคุณไม่สามารถเรียกคืนข้อมูลของคุณได้อีกต่อไปซึ่งไม่ดีอย่างแท้จริง
ตอนนี้นักพัฒนาที่อ่านข้อความนี้อาจบอกว่าพวกเขาจะไม่เขียนโค้ดที่มีปัญหานี้ อาจเป็นเรื่องจริง แต่สิ่งที่เกี่ยวกับห้องสมุดที่คุณใช้หรือผู้พัฒนารายอื่นไม่ได้ใช้งานโดย บริษัท ของคุณอีกต่อไป? คุณรับประกันได้หรือไม่ว่าปัญหานี้จะไม่เกิดขึ้น? วิธีเดียวที่จะรับประกันว่าจะใช้วิธีการทำให้เป็นอันดับแตกต่างกัน
1L
' ไม่ถูกต้อง