Skip to main content

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

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

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

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

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