0Pricing
Dart Academy · บทเรียน

มิกซ์อินด้วยคีย์เวิร์ด with

เพิ่มความสามารถโดยไม่ต้องสืบทอดเพียงสายเดียว

มิกซ์อินด้วยคีย์เวิร์ด with เป็นบทเรียน Dart Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Dart Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน

ก้าวข้ามการมีคลาสแม่เพียงตัวเดียว

คลาส Dart ขยายได้เพียงคลาสแม่เดียว แต่บ่อยครั้งคุณต้องการความสามารถจากหลายแหล่ง มิกซินช่วยผสานพฤติกรรมเพิ่มเติมเข้ามาได้อย่างเป็นระเบียบ 🧩

ประกาศมิกซิน

คุณกำหนดมิกซินด้วยคีย์เวิร์ด มิกซิน มันมีลักษณะคล้ายคลาส แต่มีไว้ผสานเข้ากับคลาสอื่น ไม่ได้มีไว้สร้างอินสแตนซ์ด้วยตนเอง

mixin Swimmer {
  void swim() => print('Swimming');
}

คีย์เวิร์ด with

คุณนำมิกซินมาใช้ด้วย with หลังการประกาศคลาส จากนั้นคลาสจะมี method ทุกตัวที่มิกซินกำหนดไว้ทันที

class Fish with Swimmer {}
// Fish().swim() works

ผสานมิกซินหลายตัว

คั่นมิกซินหลายตัวด้วยเครื่องหมายจุลภาค คลาสหนึ่งสามารถผสานมิกซิน หลายตัวได้พร้อมกัน โดยแต่ละตัวจะเพิ่มพฤติกรรมในส่วนของตนเอง

class Duck with Swimmer, Flyer {}

ใช้ extends ร่วมกับ with

มิกซินทำงานร่วมกับการสืบทอดได้ ให้เขียน extends ก่อนสำหรับคลาสแม่หนึ่งคลาส แล้วตามด้วย with และมิกซินที่ต้องการนำมาเพิ่ม

class Duck extends Bird with Swimmer, Flyer {}

มิกซินมีสถานะได้

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

mixin Counter {
  int count = 0;
  void tick() => count++;
}

ไม่ได้มีไว้สร้างอินสแตนซ์

คุณไม่สามารถเขียน new กับมิกซินล้วน ๆ ได้ มิกซินมีไว้ผสานเข้ากับคลาสจริงเท่านั้น ดังนั้น Dart จึงไม่อนุญาตให้สร้างโดยตรง

นำกลับมาใช้ซ้ำข้ามลำดับชั้น

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

มิกซินเป็นชนิดข้อมูล

คลาสที่ผสานมิกซินจะนับเป็น ชนิดข้อมูลของมิกซินนั้นด้วย คุณสามารถเก็บ Fish ไว้ในตัวแปรชนิด Swimmer แล้วเรียกใช้ method ที่ใช้ร่วมกันได้

Swimmer s = Fish();
s.swim();

องค์ประกอบเหนือการสืบทอด

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

ทำให้มิกซินมุ่งเน้นเฉพาะด้าน

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

ตรวจสอบอย่างรวดเร็ว

ทบทวนว่าคุณผสานมิกซินเข้ากับคลาสอย่างไร

สรุปทบทวน

คุณประกาศ มิกซิน นำมาใช้ด้วยคีย์เวิร์ด with ผสานหลายตัวเข้าด้วยกัน และแบ่งปันพฤติกรรมระหว่างคลาสที่ไม่เกี่ยวข้องกัน 🧩

คำถามที่พบบ่อย

บทเรียน “มิกซ์อินด้วยคีย์เวิร์ด with” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “มิกซ์อินด้วยคีย์เวิร์ด with” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Dart Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “มิกซ์อินด้วยคีย์เวิร์ด with”

เพิ่มความสามารถโดยไม่ต้องสืบทอดเพียงสายเดียว คุณปฏิบัติ Dart Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Dart Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Dart Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “มิกซ์อินด้วยคีย์เวิร์ด with” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Dart Academy นี้ได้ไหม

ได้ บทเรียน Dart Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. extends และการเขียนทับเมธอด
  2. การเรียก super และการเชื่อมคอนสตรักเตอร์
  3. มิกซ์อินด้วยคีย์เวิร์ด with
  4. ข้อจำกัด on และลำดับมิกซ์อิน
← กลับไปที่ Dart Academy