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 {
void createUser(UserData userData) {
// Logic for creating a user
}
}
class EmailService {
void sendEmail(EmailData 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.
abstract class PaymentProcessor {
abstract void processPayment();
}
class CreditCardPaymentProcessor extends PaymentProcessor {
void processPayment() {
// Logic for processing credit card payment
}
}
class PayPalPaymentProcessor extends PaymentProcessor {
void 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.
abstract class Shape {
abstract double area();
}
class Rectangle extends Shape {
double area() {
// Logic for calculating area of rectangle
}
}
class Square extends Shape {
double area() {
// Logic for calculating area of square
}
}
Prinsip Pengasingan Antara Muka(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.
interface UpdateableFeature {
void updateFeature();
}
interface DisplayableFeature {
void displayFeature();
}
Dependency Inversion Principle(DIP)
Prinsip ini mencadangkan menggunakan suntikan kebergantungan untuk mengurus kebergantungan.
Contoh: Menggunakan suntikan tanggungan untuk mengurus tanggungan.
class OrderProcessor {
private final DBConnection dbConnection;
private final EmailService emailService;
OrderProcessor(DBConnection dbConnection, EmailService emailService) {
this.dbConnection = dbConnection;
this.emailService = emailService;
}
}
Ingat bahawa penggunaan SOLID prinsip dalam Java harus dilakukan secara fleksibel berdasarkan tujuan khusus projek anda dan pemahaman anda tentang SOLID dan Java.