Single Responsibility Principle
- Her sınıf sadece tek bir işi gerçekleştirmeli. Bu şekilde yapıldığında hataların ortaya çıkma ihtimali azaltılmış olur.
Hatalı Örnek
class Order{
int id;
Date orderDate;
int getId();//✅
setId(int id);//✅
addOrder();//✅
getOrderDate();//✅
setOrderDate();//✅
sendOrderMail(){ // ❌Ekstra fonksiyonellik
try{
//Logic
} catch(Exception ex){
handleLogs;
}
}
handleLogs(); // ❌Ekstra fonksiyonellik
}
Düzeltilmiş Örnek
- Sınıfın sahip olduğu ekstra fonksiyonellik, yeni sınıflara dağıtılarak ileride yaşanabilecek hataların oluşma ihtimali azaltıldı.
class MailSender{
void sendEmail(String emailData);
}
class LogHandler{
void error(String err);
void info(String inf);
void debug(String deb);
}
class Order{
int id;
Date orderDate;
LogHandler logHandler;
int getId();
setId(int id);
addOrder(){
try{
MailSender mailSender = new MailSender();
String emailData;
mailSender.sendEmail(emailData);
}catch(Exception ex){
logHandler.error(ex);
}
}
getOrderDate();
setOrderDate();
}