การประกอบเทียบกับการสืบทอด
เลือกใช้การประกอบสำหรับพฤติกรรมร่วมกัน
การประกอบเทียบกับการสืบทอด เป็นบทเรียน Angular Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Angular Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Angular Academy มีบทเรียนทั้งหมด 4 บทเรียน
กลยุทธ์การนำกลับมาใช้ใหม่สองแบบ
หากต้องการแบ่งปันพฤติกรรมระหว่างคอมโพเนนต์ คุณสามารถใช้การสืบทอด (ขยายคลาสพื้นฐาน) หรือการนำมาประกอบ (รวมส่วนประกอบขนาดเล็กเข้าด้วยกัน) API การนำมาประกอบของ Angular ทำให้การนำมาประกอบเป็นตัวเลือกเริ่มต้นที่แนะนำ
สรุปการสืบทอด
ในการสืบทอด คอมโพเนนต์จะขยายคอมโพเนนต์หรือคำสั่งพื้นฐาน แล้วนำอินพุต เอาต์พุต และตรรกะของสิ่งนั้นกลับมาใช้ใหม่
export class FancyButton extends BaseButton {
// inherits BaseButton members
}ข้อจำกัดของการสืบทอด
คลาสหนึ่งสามารถขยายคลาสพื้นฐานได้เพียง หนึ่ง คลาสเท่านั้น ลำดับชั้นที่ลึกจะยืดหยุ่นน้อยลง และคุณจะได้รับทุกอย่างมาด้วย แม้แต่ส่วนที่ไม่ต้องการ
ปัญหาเพชร
การรวมพฤติกรรมหลายอย่างด้วยการสืบทอดทำไม่ได้หากไม่สร้างสายการสืบทอดที่ซับซ้อนและไม่สะดวก การนำมาประกอบจึงหลีกเลี่ยงปัญหานี้ด้วยการใช้คำสั่งหลายตัวแยกจากกัน
สรุปการนำมาประกอบ
ในการนำมาประกอบ คอมโพเนนต์จะมุ่งเน้นหน้าที่ของตนเอง และดึงพฤติกรรมเข้ามาผ่าน hostDirectives ได้มากเท่าที่จำเป็น
hostDirectives: [ElevateDirective, RippleDirective, FocusTrapDirective]ให้ความสำคัญกับการนำมาประกอบ
คำแนะนำที่ว่า "ให้เลือกการนำมาประกอบมากกว่าการสืบทอด" เหมาะกับ Angular อย่างยิ่ง เพราะการนำมาประกอบยืดหยุ่น เพิ่มเติมได้ และหลีกเลี่ยงคลาสพื้นฐานที่เปราะบาง
กรณีที่การสืบทอดยังเหมาะสม
การสืบทอดยังเหมาะสมได้เมื่อมีคลาสพื้นฐานเดียวที่คงที่และใช้ร่วมกันโดยรูปแบบที่ใกล้เคียงกัน เช่น ฟิลด์แบบฟอร์มพื้นฐานที่รูปแบบต่าง ๆ นำไปปรับเฉพาะทาง ควรรักษาลำดับชั้นให้ตื้น
การใช้ทั้งสองแนวทางร่วมกัน
คุณสามารถใช้ทั้งสองแนวทางร่วมกันได้ โดยขยายคลาสพื้นฐานแบบบางเพื่อใช้โครงสร้างร่วมกัน และนำพฤติกรรมสำหรับข้อกังวลร่วมหลายส่วนมาประกอบ
การห่อหุ้ม
การนำมาประกอบจะเก็บรายละเอียดภายในของแต่ละพฤติกรรมไว้เป็นส่วนตัว และเปิดเผยเฉพาะอินพุตและเอาต์พุตที่เลือกไว้ ขณะที่การสืบทอดจะเปิดเผย API ทั้งหมดของคลาสพื้นฐาน
การปรับโครงสร้างไปสู่การนำมาประกอบ
เมื่อคลาสพื้นฐานสะสมหน้าที่ที่ไม่เกี่ยวข้องกัน ให้แยกแต่ละหน้าที่ออกเป็นคำสั่งแล้วนำมาประกอบ ผลลัพธ์จะเป็นโมดูลที่ยืดหยุ่นและทดสอบได้มากขึ้น
แนวทางช่วยตัดสินใจ
ต้องการพฤติกรรมอิสระหลายอย่างใช่หรือไม่ ให้นำมาประกอบ ต้องการโครงสร้างพื้นฐานร่วมเพียงอย่างเดียวใช่หรือไม่ คลาสพื้นฐานแบบตื้นอาจเหมาะสม โดยทั่วไปให้เลือกการนำมาประกอบเพื่อความยืดหยุ่น
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความเข้าใจเกี่ยวกับการนำมาประกอบเทียบกับการสืบทอด
สรุปทบทวน
คุณได้เรียนรู้ว่าการนำมาประกอบ (การรวมพฤติกรรมที่มุ่งเน้นเฉพาะด้านผ่าน hostDirectives) ยืดหยุ่นกว่าการสืบทอด (การใช้คลาสพื้นฐานเพียงคลาสเดียว) ช่วยหลีกเลี่ยงลำดับชั้นที่เปราะบาง และควรเป็นตัวเลือกเริ่มต้น โดยสงวนการสืบทอดแบบตื้นไว้สำหรับโครงสร้างร่วม
คำถามที่พบบ่อย
บทเรียน “การประกอบเทียบกับการสืบทอด” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การประกอบเทียบกับการสืบทอด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Angular Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Angular Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การประกอบเทียบกับการสืบทอด”
เลือกใช้การประกอบสำหรับพฤติกรรมร่วมกัน คุณปฏิบัติ Angular Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Angular Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Angular Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การประกอบเทียบกับการสืบทอด” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Angular Academy นี้ได้ไหม
ได้ บทเรียน Angular Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พร็อพเพอร์ตี hostDirectives
- การเปิดเผยอินพุตและเอาต์พุต
- การสร้างพฤติกรรมที่นำกลับมาใช้ใหม่ได้
- การประกอบเทียบกับการสืบทอด