我正在閱讀一些關於SOLID編程的內容,我試圖重構我的測試項目以實現其中的一些規則。單一責任原則 - 功能
我經常有單一功能原則的疑慮,所以我希望有人可以幫助我這一點。
正如我理解,SRP意味着(在一個功能的情況下),函數應負責只有一兩件事。這看起來很簡單,但我確實陷入了一個做不止的事情的陷阱。
這簡化的示例:
class TicketService {
private ticket;
getTicket() {
httpClient.get().then(function(response) {
ticket = response.ticket;
emit(ticket); <----------------------
});
}
}
混亂的部分是emit(ticket)
。所以,我的函數名爲getTicket
,這正是我在那裏做的(從服務器獲取它),但另一方面,我需要將該更改發佈到我的應用程序的所有其他部分,並讓他們知道該票證被改變。
我可以創建單獨的set()
函數,我可以在其中設置私有變量並將其發送到那裏,但似乎是一樣的東西。
這是錯誤的嗎?它違反了規則嗎?你將如何解決它?
是的,這更有意義。謝謝! – Ned