แนะนำ, 2024

ตัวเลือกของบรรณาธิการ

ความแตกต่างระหว่าง Abstraction และ Data Hiding

นามธรรมและการซ่อนข้อมูลเป็นแนวคิดที่สำคัญของการเขียนโปรแกรมเชิงวัตถุ นามธรรมเป็นวิธีการแสดงคุณสมบัติที่สำคัญโดยไม่ต้องเกี่ยวข้องกับรายละเอียดพื้นหลัง ในทางกลับกันการซ่อนข้อมูลจะป้องกันข้อมูลจากการเข้าถึงโดยตรงของโปรแกรม แม้ว่าแนวคิดทั้งสองจะคล้ายกัน แต่มีความแตกต่างกัน นามธรรมให้วิธีการสร้างชนิดข้อมูลที่ผู้ใช้กำหนดสำหรับการออกแบบวัตถุในโลกแห่งความจริงที่มีคุณสมบัติเดียวกัน เมื่อเทียบกับการซ่อนข้อมูลปกป้องข้อมูลและฟังก์ชั่นจากการเข้าถึงที่ไม่ได้รับอนุญาต

แผนภูมิเปรียบเทียบ

พื้นฐานสำหรับการเปรียบเทียบสิ่งที่เป็นนามธรรมการซ่อนข้อมูล
ขั้นพื้นฐาน
แยกเฉพาะข้อมูลที่เกี่ยวข้องและไม่สนใจรายละเอียดที่ไม่จำเป็นซ่อนข้อมูลจากส่วนต่าง ๆ ของโปรแกรม
วัตถุประสงค์เพื่อซ่อนความซับซ้อนเพื่อให้เกิดการห่อหุ้ม
ชั้น
คลาสใช้ตัวย่อเพื่อสืบทอดประเภทข้อมูลที่ผู้ใช้กำหนดเองใหม่การซ่อนข้อมูลถูกใช้ในคลาสเพื่อทำให้ข้อมูลเป็นส่วนตัว
เพ่งความสนใจไปที่
พฤติกรรมที่สังเกตได้ของข้อมูลการ จำกัด หรืออนุญาตให้ใช้ข้อมูลภายในแคปซูล

ความหมายของสิ่งที่เป็นนามธรรม

สิ่งที่ เป็น นามธรรม ใช้เพื่อซ่อนความซับซ้อนเป็นหลัก มันบ่งบอกถึงคุณลักษณะที่จำเป็นของวัตถุที่แตกต่างจากวัตถุประเภทอื่นทั้งหมด สิ่งที่เป็นนามธรรมมุ่งเน้นไปที่ด้านนอกของวัตถุ สำหรับวัตถุนามธรรมให้การแยกพฤติกรรมที่สำคัญจากการใช้งาน มันระบุขอบเขตแนวคิดที่เกี่ยวข้องกับมุมมองของผู้ชม สิ่งที่เป็นนามธรรมที่เหมาะสมจะเน้นไปที่รายละเอียดที่สำคัญสำหรับผู้อ่านหรือผู้ใช้และระงับคุณลักษณะที่ไม่เกี่ยวข้องและเบี่ยงเบน

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

ประเภทของสิ่งที่เป็นนามธรรม:

  • Abstraction เชิงกระบวนงาน - ประกอบด้วยชุดคำสั่งที่มีฟังก์ชั่นที่ระบุ
  • Data abstraction - เป็นชุดข้อมูลที่ระบุและอธิบายวัตถุข้อมูล
  • Control abstraction - เป็นกลไกควบคุมโปรแกรมที่ไม่ได้ระบุรายละเอียดการตกแต่งภายใน

คำจำกัดความของการซ่อนข้อมูล

การซ่อนข้อมูล หมายถึงการซ่อนข้อมูลจากส่วนประกอบของโปรแกรมที่ไม่จำเป็นต้องเรียกคืน การแยกข้อมูลจากการเข้าถึงโดยตรงโดยโปรแกรมเรียกว่าการซ่อนข้อมูลหรือการซ่อนข้อมูล สำหรับการนำการซ่อนข้อมูลไปใช้จะมีการใช้การห่อหุ้มข้อมูลในที่ซึ่งข้อมูลและฟังก์ชั่นของคลาสได้รับการปกป้องจากการเข้าถึงที่ไม่ได้รับอนุญาต ในทางตรงกันข้ามเมื่อข้อมูลและฟังก์ชั่นถูกห่อหุ้มในหน่วยเดียวจะเรียกว่า encapsulation ดังนั้นการซ่อนข้อมูลช่วยในการบรรลุการห่อหุ้ม รายละเอียดการทำงานของวัตถุสามารถจัดการผ่านตัวระบุการเข้าถึง

การใช้แนวคิดการซ่อนข้อมูลข้อมูลและฟังก์ชั่นในคลาสนั้นถูกทำให้เป็นส่วนตัวดังนั้นจึงไม่สามารถเข้าถึงได้อย่างไม่ถูกต้องโดยฟังก์ชั่นนอกชั้นเรียนและป้องกันจากการเปลี่ยนแปลงโดยไม่ตั้งใจ

ความแตกต่างที่สำคัญระหว่างสิ่งที่เป็นนามธรรมและการซ่อนข้อมูล

  1. สิ่งที่เป็นนามธรรมแสดงข้อมูลที่เกี่ยวข้องและปฏิเสธรายละเอียดที่ไม่จำเป็น ในทางกลับกันการซ่อนข้อมูลถูกใช้เพื่อซ่อนข้อมูลจากส่วนต่าง ๆ ของโปรแกรม
  2. จุดประสงค์ก่อนหน้าของนามธรรมคือการซ่อนรายละเอียดการใช้งานที่ซับซ้อนของโปรแกรมหรือซอฟต์แวร์ ในทางกลับกันการซ่อนข้อมูลจะถูกนำไปใช้เพื่อให้เกิดการห่อหุ้ม
  3. Abstraction ใช้ในคลาสเพื่อสร้างประเภทข้อมูลใหม่ที่ผู้ใช้กำหนด เมื่อเทียบกับในการซ่อนข้อมูลในชั้นเรียนจะใช้ในการทำให้ข้อมูลส่วนตัว
  4. สิ่งที่เป็นนามธรรมมุ่งเน้นที่พฤติกรรมที่สังเกตได้ของข้อมูลในขณะที่การซ่อนข้อมูล จำกัด หรืออนุญาตให้ใช้ข้อมูลภายในแคปซูล

ข้อสรุป

ทั้งสิ่งที่เป็นนามธรรมและการซ่อนข้อมูลมีจุดประสงค์เพื่อเพียงแสดงข้อมูลที่จำเป็นและซ่อนรายละเอียดที่ไม่จำเป็น แต่เพื่อจุดประสงค์ที่แตกต่างกัน สิ่งที่เป็นนามธรรมเน้นที่การซ่อนความซับซ้อนของการใช้งานในขณะที่การซ่อนข้อมูลความโดดเด่นนั้นได้รับการปกป้องข้อมูลจากการเข้าถึงโดยไม่ได้รับอนุญาต

Top