ความแตกต่างระหว่าง Shallow copy กับ Deep copy

วันนี้ผมขออธิบายคำศัพท์ 2 คำที่เกี่ยวกับการ Copy Object ครับ

Shallow copy

Shallow copy คือ การ Copy Object โดยที่ข้อมูลยังมี Reference เชื่อมโยงกันในหน่วยความจำครับ ดังรูป

  • จุดเด่น: ทำงานเร็วครับ เพราะไม่ต้องมาเสียเวลาสร้าง Object ใหม่
  • จุดด้อย: เวลาเขียน Code จัดการ เราต้องควบคุมดีๆ เพื่อป้องกัน Side Effect จากการแก้ไข Object ที่ผิดพลาดครับ เพราะแก้ Value ที่เดียว ทำให้ Object ที่ใช้ Reference เดียวกัน เปลี่ยนค่าไปด้วย

Deep copy 

Deep copy การ Copy Object โดยสร้างอีก Object หนึ่งเลย โดยไม่มี Reference เชื่อมโยงกันในหน่วยความจำครับ ดังรูป

  • จุดเด่น: Object แต่ละตัวแยกกันเป็นอิสระ จึงไม่มี Side Effect จากการแก้ไขค่า Object ที่เชื่อมโยงกัน
  • จุดด้อย: การทำงานช้ากว่าแบบ Shallow copy เพราะ ต้องเสียเวลามาสร้าง Object ใหม่

สำหรับ Blog ในตอนต่อไปเป็นการแสดงตัวอย่างการ Copy Object ในภาษา Java และ C# ครับ สุดท้ายนี้ครับ เวลาเขียนโปรแกรม สิ่งที่เราต้องรู้ คือ Concept แนวคิดของแต่ละภาษาครับ เพราะเราจะเขียนได้ แต่ไม่สามารถพูดได้เต็มๆปากนะครับ ว่าเราสามารถเขียนเป็น เข้าใจ และมี Performance ดีครับ


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.