Menerapkan SOLID Prinsip dalam JavaScript: Contoh dan Amalan Terbaik

Single Responsibility Principle(SRP)

Prinsip ini menyatakan bahawa setiap kelas harus mempunyai satu tanggungjawab. Ia menekankan bahawa kelas harus melaksanakan satu fungsi tertentu dan tidak mempunyai terlalu banyak sebab untuk berubah.

Contoh: Mengurus maklumat pengguna dan menghantar pemberitahuan e-mel.

class UserManager {  
  createUser(userData) {  
    // Logic for creating a user  
  }  
}  
  
class EmailService {  
  sendEmail(emailData) {  
    // Logic for sending an email  
  }  
}  

Open/Closed Principle(OCP)

Prinsip ini menggalakkan memperluaskan fungsi dengan menambah kod baharu dan bukannya mengubah suai kod sedia ada.

Contoh: Mengendalikan kaedah pembayaran yang berbeza dalam aplikasi e-dagang.

class PaymentProcessor {  
  processPayment() {  
    // Common logic for payment processing  
  }  
}  
  
class CreditCardPaymentProcessor extends PaymentProcessor {  
  processPayment() {  
    // Logic for processing credit card payment  
  }  
}  
  
class PayPalPaymentProcessor extends PaymentProcessor {  
  processPayment() {  
    // Logic for processing PayPal payment  
  }  
}  

Liskov Substitution Principle(LSP)

Prinsip ini menegaskan bahawa objek kelas terbitan harus digantikan untuk objek kelas asas tanpa menjejaskan ketepatan program.

Contoh: Menguruskan bentuk geometri.

class Shape {  
  area() {  
    // Common logic for calculating area  
  }  
}  
  
class Rectangle extends Shape {  
  area() {  
    // Logic for calculating area of rectangle  
  }  
}  
  
class Square extends Shape {  
  area() {  
    // Logic for calculating area of square  
  }  
}  

Interface Segregation Principle(ISP)

Prinsip ini menasihatkan memecahkan antara muka kepada yang lebih kecil untuk mengelakkan memaksa kelas melaksanakan kaedah yang mereka tidak perlukan.

Contoh: Antara muka untuk mengemas kini dan memaparkan data.

class UpdateableFeature {  
  updateFeature() {  
    // Logic for updating feature  
  }  
}  
  
class DisplayableFeature {  
  displayFeature() {  
    // Logic for displaying feature  
  }  
}  

Dependency Inversion Principle(DIP)

Prinsip ini mencadangkan menggunakan suntikan kebergantungan untuk mengurus kebergantungan.

Contoh: Menggunakan suntikan tanggungan untuk mengurus tanggungan.

class OrderProcessor {  
  constructor(dbConnection, emailService) {  
    this.dbConnection = dbConnection;  
    this.emailService = emailService;  
  }  
}  

Ingat bahawa penggunaan SOLID prinsip dalam JavaScript harus dilakukan secara fleksibel berdasarkan tujuan khusus projek anda dan pemahaman anda tentang SOLID dan JavaScript.