คลาสบางส่วนคืออะไร?

คลาสบางส่วนเป็นคุณสมบัติในภาษาการเขียนโปรแกรมเชิงวัตถุบางอย่างที่อนุญาตให้มีการแบ่งคลาสระหว่างไฟล์ซอร์สโค้ดหลายไฟล์ คลาสบางส่วนซึ่งเรียกอีกอย่างว่าประเภทบางส่วนนั้นไม่มีอยู่ในภาษาการเขียนโปรแกรมส่วนใหญ่โดยเฉพาะคลาสที่เก่ากว่าเช่น C ++ และ Java แต่ละภาษาที่ใช้คลาสบางส่วนเช่น C # และ Ruby จัดการการใช้งานแตกต่างกันเล็กน้อย

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

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

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