1. Zasada Pojedynczej Odpowiedzialności
SOLID to zestaw zasad projektowania oprogramowania, które pomagają tworzyć bardziej elastyczne, skalowalne i zrozumiałe systemy.
Zasada Pojedynczej Odpowiedzialności
(Single Responsibility Principle, SRP)
Zasada ta mówi, że klasa powinna mieć tylko jeden powód do zmiany, czyli powinna mieć tylko jedną odpowiedzialność.
W poniższym przykładzie klasa
W poniższym przykładzie klasa
DataProcessor łamie zasadę pojedynczej odpowiedzialności, ponieważ ma zarówno metodę saveToFile do zapisu danych do pliku, jak i displayData do wyświetlania danych. Java
// Klasa łamiąca zasadę SRP
class DataProcessor {
private String data;
public DataProcessor(String data) {
this.data = data;
}
public void saveToFile(String filename) {
// logika zapisu do pliku
System.out.println("Data saved to " + filename);
}
public void displayData() {
// logika wyświetlania danych
System.out.println("Data: " + data);
}
}
public class Main {
public static void main(String[] args) {
// Użycie klasy łamiącej zasadę SRP
DataProcessor dataProcessor = new DataProcessor("Some data");
dataProcessor.saveToFile("output.txt");
dataProcessor.displayData();
}
}Aby naprawić to naruszenie SRP, możemy rozdzielić te dwie odpowiedzialności do dwóch oddzielnych klas:
Java
// Klasa do zapisu danych do pliku
class DataSaver {
public void saveToFile(String data, String filename) {
// logika zapisu do pliku
System.out.println("Data saved to " + filename);
}
}
// Klasa do wyświetlania danych
class DataDisplayer {
public void displayData(String data) {
// logika wyświetlania danych
System.out.println("Data: " + data);
}
}
public class Main {
public static void main(String[] args) {
// Poprawione użycie zasady SRP
DataSaver dataSaver = new DataSaver();
dataSaver.saveToFile("Some data", "output.txt");
DataDisplayer dataDisplayer = new DataDisplayer();
dataDisplayer.displayData("Some data");
}
}Teraz mamy dwie osobne klasy, z których każda ma jedną odpowiedzialność: DataSaver do zapisu danych do pliku i DataDisplayer do wyświetlania danych.
To lepiej spełnia zasadę pojedynczej odpowiedzialności.