單一職責原則(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(含賣出相關方法)。是嗎 ?
的方法的數量是不相關的因素。參見[適用於功能單一職責原則]關於軟件工程SE(https://softwareengineering.stackexchange.com/questions/275646/is-the-single-responsibility-principle-applicable-to-functions)。它與用例中的角色或角色有關,而與方法的數量無關。 – MatsLindh