องค์ประกอบแทนการสืบทอด
เลือกการออกแบบแบบมีสิ่งนั้นอยู่เมื่อเหมาะสม
องค์ประกอบแทนการสืบทอด เป็นบทเรียน Dart Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Dart Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
สองวิธีในการนำกลับมาใช้ใหม่
คุณนำพฤติกรรมกลับมาใช้ใหม่ได้ด้วยการสืบทอด หรือด้วยการเก็บออบเจ็กต์อื่นไว้ แนวทางที่สองเรียกว่าการประกอบ
เป็นสิ่งเดียวกัน กับ มีสิ่งนั้นอยู่
การสืบทอดจำลองความสัมพันธ์แบบเป็นสิ่งเดียวกัน: Circle เป็น Shape ส่วนการประกอบจำลองความสัมพันธ์แบบมีสิ่งนั้นอยู่: Car มี Engine
คลาสที่ประกอบขึ้น
เมื่อใช้การประกอบ คุณเก็บตัวช่วยไว้เป็นฟิลด์ แล้วมอบหมายงานให้ตัวช่วยนั้น แทนที่จะขยายคลาสของมัน
class Car {
final Engine engine = Engine();
}มอบหมายการทำงาน
คลาสภายนอกส่งต่อการเรียกไปยังออบเจ็กต์ภายใน การส่งต่อนี้ช่วยนำตรรกะกลับมาใช้ใหม่ได้โดยไม่ต้องสืบทอด
class Car {
final engine = Engine();
void start() => engine.ignite();
}ปัญหาคลาสพื้นฐานเปราะบาง
การสืบทอดหลายชั้นเปราะบาง การเปลี่ยนแปลงในคลาสแม่อาจทำให้คลาสย่อยที่อยู่ห่างออกไปเสียหายโดยไม่รู้ตัว ปัญหานี้เรียกว่าคลาสพื้นฐานเปราะบาง
ความยืดหยุ่นขณะโปรแกรมทำงาน
การประกอบทำให้คุณสลับออบเจ็กต์ภายในได้ทุกเมื่อ การสืบทอดถูกกำหนดตายตัวตั้งแต่แรก แต่ฟิลด์สามารถเปลี่ยนได้
class Car {
Engine engine;
Car(this.engine);
}ใช้ร่วมกับอินเทอร์เฟซ
จับคู่การประกอบกับอินเทอร์เฟซ โดยพึ่งพาชนิด Engine แบบนามธรรม เพื่อให้เครื่องยนต์ใดก็ตามที่ตรงตามข้อกำหนดเชื่อมต่อได้อย่างเรียบร้อย
abstract class Engine {
void ignite();
}ทดสอบได้ง่ายขึ้น
เนื่องจากแต่ละส่วนเป็นออบเจ็กต์แยกกัน คุณจึงส่งออบเจ็กต์จำลองเข้าไปในการทดสอบได้ การประกอบทำให้การจำลองออบเจ็กต์เป็นเรื่องง่ายและเป็นธรรมชาติ
var car = Car(FakeEngine());หลีกเลี่ยงการสืบทอดสิ่งที่ไม่เหมาะสม
คลาสย่อยสืบทอดสมาชิกทุกตัว แม้แต่สมาชิกที่ไม่ควรเปิดเผย การประกอบจะแชร์เฉพาะสิ่งที่คุณเลือกจะส่งต่อเท่านั้น
เมื่อการสืบทอดยังเหมาะกว่า
การสืบทอดเหมาะสมเมื่อมีความสัมพันธ์แบบเป็นสิ่งเดียวกันที่ชัดเจนและมีตัวตนร่วมกัน แต่ควรเลือกใช้การประกอบเมื่อความสัมพันธ์นั้นแท้จริงแล้วเป็นแบบมีสิ่งนั้นอยู่
กฎสำหรับใช้งานจริง
โดยทั่วไปให้เลือกการประกอบก่อน และใช้การสืบทอดอย่างจำกัด วิธีนี้ทำให้การออกแบบเชื่อมโยงกันอย่างหลวม ๆ และแก้ไขได้ง่ายในภายหลัง 🧩
ตรวจสอบอย่างรวดเร็ว
คำถามสั้น ๆ เกี่ยวกับการประกอบ
สรุปทบทวน
การประกอบจำลองความสัมพันธ์แบบมีสิ่งนั้นอยู่ โดยเก็บออบเจ็กต์อื่นไว้และส่งต่องานให้ ออกแบบได้ยืดหยุ่นและทดสอบได้ง่าย ขณะที่การสืบทอดเหมาะกับความสัมพันธ์แบบเป็นสิ่งเดียวกันที่ชัดเจน 👍
คำถามที่พบบ่อย
บทเรียน “องค์ประกอบแทนการสืบทอด” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “องค์ประกอบแทนการสืบทอด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Dart Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “องค์ประกอบแทนการสืบทอด”
เลือกการออกแบบแบบมีสิ่งนั้นอยู่เมื่อเหมาะสม คุณปฏิบัติ Dart Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Dart Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Dart Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “องค์ประกอบแทนการสืบทอด” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Dart Academy นี้ได้ไหม
ได้ บทเรียน Dart Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- คลาสนามธรรมและเมธอดนามธรรม
- อินเทอร์เฟซโดยนัยและ implements
- พหุรูปผ่านชนิดข้อมูลร่วมกัน
- องค์ประกอบแทนการสืบทอด