Принцип единой ответственности (SRP): -
Каждый класс должен нести единственную ответственность. По сути, для изменений должна быть одна причина. Я не уверен, что именно означает последнее утверждение. Моя интерпретация состоит в том, что для проектирования классов должна быть единственная причина для изменения - может быть единственный метод, потому что каждый метод - это поведение и, следовательно, причина. Это верно? Если нет, то что именно определяет причину?
Рассмотрим систему фондовой биржи, в которой большинство разработчиков придумывают дизайн, в котором StockService.java имеет методы покупки и продажи. Здесь будет две причины (купить и продать) изменить этот класс.
public class StockService {
private String name = "ABC";
private int quantity = 10;
public void buy(){
System.out.println("Stock [ Name: "+name+",
Quantity: " + quantity +" ] bought");
}
public void sell(){
System.out.println("Stock [ Name: "+name+",
Quantity: " + quantity +" ] sold");
}
// other methods related to socks
}
Чтобы следовать принципу SRM, мне нужно создать отдельный класс, где StockBuyService.java (содержащий методы, связанные с покупкой) и StockSellService (содержащий методы, связанные с продажей). это ?