ใช้และรวมหลายอินเทอร์เฟซ
ในฐานะนักพัฒนา C# ในโครงการขนาดใหญ่ คุณมักใช้อินเทอร์เฟซหลายรายการภายในคลาสเดียว ความรู้นี้จําเป็นสําหรับการสร้างโค้ดที่ยืดหยุ่นและนํากลับมาใช้ใหม่ได้ใน C#
ดําเนินการใช้งานอินเทอร์เฟซหลายรายการ
คลาส สามารถใช้อินเทอร์เฟซหลายรายการ ซึ่งทําให้มีลักษณะการทํางานจากหลายแหล่งข้อมูล ความสามารถนี้มีความสําคัญใน C# เนื่องจากภาษาไม่สนับสนุนการสืบทอดของคลาสหลายรายการ ด้วยการใช้อินเทอร์เฟซหลายรายการ คุณสามารถบรรลุผลของการสืบทอดหลายรายการและให้ API ทั่วไปที่ได้รับการสนับสนุนโดยประเภทต่างๆรวมถึงชนิดของค่า
ในการใช้อินเทอร์เฟซหลายตัวในคลาส C# สมาชิกอินเทอร์เฟซแต่ละตัวจะต้องถูกนําไปใช้ด้วยชื่อและลายเซ็นเดียวกันกับที่ระบุในอินเทอร์เฟซ
public interface ICanDrive
{
void Drive();
}
public interface ICanFly
{
void Fly();
}
public class SuperCar : ICanDrive, ICanFly
{
public void Drive()
{
// Implementation of Drive
}
public void Fly()
{
// Implementation of Fly
}
}
อินเทอร์เฟซหลายรายการในคลาสเดียว
การรวมอินเทอร์เฟซหลายรายการในคลาส C# เดียวจะเกี่ยวข้องกับการใช้วิธีการและคุณสมบัติที่จําเป็นทั้งหมดจากแต่ละอินเทอร์เฟซ วิธีนี้ช่วยให้คุณสามารถผสมและจับคู่ความสามารถและสร้างคลาสที่สนับสนุนฟังก์ชันการทํางานต่าง ๆ ได้
ตัวอย่างเช่น พิจารณาแอปพลิเคชั่นเครื่องเล่นเพลงที่มีการควบคุมประเภทต่าง ๆ แต่ละตัวควบคุมต้องสนับสนุน API เพื่อเล่น หยุดชั่วคราว และรายงานสถานะปัจจุบัน ตัวควบคุมบางตัวอาจสนับสนุนคุณลักษณะอื่น ๆ เช่น การข้ามไปยังแทร็คถัดไปหรือการปรับระดับเสียง
public interface IControl
{
void Play();
void Pause();
bool IsPlaying { get; }
}
public interface ISkipControl : IControl
{
void SkipToNext();
}
public interface IVolumeControl : IControl
{
void AdjustVolume(int level);
}
public class MusicPlayer : ISkipControl, IVolumeControl
{
public void Play() { /* Implementation */ }
public void Pause() { /* Implementation */ }
public bool IsPlaying { get; private set; }
public void SkipToNext() { /* Implementation */ }
public void AdjustVolume(int level) { /* Implementation */ }
}
ในตัวอย่าง MusicPlayer นี้ คลาส จะรวมฟังก์ชันของ IControlอินเทอร์เฟซ , ISkipControlและ IVolumeControl และ ซึ่งมีการใช้งานสําหรับวิธีการและคุณสมบัติที่จําเป็นทั้งหมด
ใน C# เมธอดอินเทอร์เฟซเริ่มต้นช่วยในการรวมคุณลักษณะที่แตกต่างกัน วิธีการอินเทอร์เฟซเริ่มต้นนั้นเสมือนจริงดังนั้นจึงสามารถแทนที่ได้หากจําเป็น ผู้สร้างคลาสสามารถเลือกอินเทอร์เฟซที่จะใช้ เพื่อให้แน่ใจว่ามีการเลือกวิธีการจากคลาสเสมอ ด้วยการใช้อินเทอร์เฟซหลายตัว คุณสามารถออกแบบคลาสที่มีแบบโมดูลาร์ ยืดหยุ่น และมีความสามารถในการสนับสนุนฟังก์ชันการทํางานที่หลากหลาย ในขณะที่วิธีการนี้ทําให้เกิดความซับซ้อนในการใช้งาน แต่ก็ช่วยส่งเสริมการแยกข้อกังวลที่ดีขึ้นและทําให้โค๊ดเบสของคุณยืดหยุ่นมากขึ้นต่อการเปลี่ยนแปลง ในท้ายที่สุด การรวมอินเทอร์เฟซจะนําไปสู่โซลูชันที่บํารุงรักษาได้และปรับขนาดได้มากขึ้นโดยเฉพาะอย่างยิ่งในโครงการขนาดใหญ่ที่การปรับตัวเป็นกุญแจสําคัญ