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

ตัวปรับแต่ง base, interface และ final

ควบคุมวิธีที่ผู้อื่นจะต่อยอดคลาสของคุณ

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

ตัวปรับแต่งคลาส

Dart 3 เพิ่มตัวปรับแต่งที่ควบคุมวิธีที่ผู้อื่นนำคลาสของคุณไปใช้ซ้ำ ตัวปรับแต่งเหล่านี้ช่วยให้ผู้สร้างไลบรารีกำหนดขอบเขตที่ชัดเจนและบังคับใช้ได้

ตัวปรับแต่ง base

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

base class Animal {
  void breathe() {}
}

เหตุผลที่ใช้ base

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

ตัวปรับแต่ง interface

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

interface class Logger {
  void log(String m) {}
}

เหตุผลที่ใช้ interface

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

class FileLogger implements Logger {
  void log(String m) {}
}

ตัวปรับแต่ง final

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

final class Money {}

เหตุผลที่ใช้ final

กำหนดคลาสเป็น final เมื่อพฤติกรรมของคลาสต้องไม่ถูกเปลี่ยนแปลงโดยผู้อื่น คุณจะยังปรับปรุงคลาสต่อได้โดยไม่ทำให้คลาสย่อยเสียหาย

base ส่งต่อข้อจำกัดลงไป

หากคุณขยายคลาส base คลาสย่อยของคุณก็ต้องเป็น base, final หรือ sealed เช่นกัน ข้อจำกัดนี้จะส่งต่อไปตามลำดับการสืบทอด

base class Cat extends Animal {}

การใช้ตัวปรับแต่งร่วมกัน

คุณสามารถจับคู่คำอย่าง base mixin หรือ sealed กับตัวปรับแต่งอื่น เพื่อปรับกฎการนำกลับมาใช้ใหม่ให้ละเอียดขึ้น แต่ละชุดจะแสดงเจตนาที่ชัดเจน

base mixin Swimmer {
  void swim() {}
}

อิสระภายในไลบรารีเดียวกัน

ข้อจำกัดเหล่านี้มีผลเฉพาะภายนอกไลบรารีที่ประกาศเท่านั้น ภายในแพ็กเกจของคุณเอง คุณจะขยายหรือนำไปใช้เป็นอินเทอร์เฟซอย่างไรก็ได้

เลือกตัวปรับแต่งให้เหมาะสม

เลือก interface สำหรับสัญญาการทำงาน เลือก base สำหรับโค้ดที่ใช้ร่วมกัน และเลือก final เพื่อล็อกทุกอย่างอย่างสมบูรณ์ เลือกกฎที่ผ่อนปรนที่สุดแต่ยังปลอดภัย 🧭

ตรวจสอบสั้น ๆ

ตรวจสอบความเข้าใจเรื่องตัวปรับแต่งคลาส

สรุป

คุณได้เรียนรู้ว่า base บังคับให้สืบทอด interface บังคับให้นำไปใช้ และ final จะปิดกั้นทั้งสองแบบ ทำให้คุณควบคุมการนำกลับมาใช้ใหม่ได้ 🔐

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

บทเรียน “ตัวปรับแต่ง base, interface และ final” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ตัวปรับแต่ง base, interface และ final”

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

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

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

บทเรียน “ตัวปรับแต่ง base, interface และ final” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ฟิลด์ final และความไม่เปลี่ยนแปลงอย่างลึก
  2. คลาส sealed และ switch แบบครอบคลุมทุกกรณี
  3. ตัวปรับแต่ง base, interface และ final
  4. copyWith และความเท่าเทียมตามค่า
← กลับไปที่ Dart Academy