單一職責原則的主要定義是,A 類應該只有一個改變的理由。讓我們分解一下這個陳述以便更好地理解。
假設我們有一個類別來操作我們傳遞給它的文本,單一職責原則規定我們創建的類別應該只負責操作文本,它執行的任何其他操作都不應該是班級。
讓我們舉一個這樣的類別的例子,看看我們如何重建它:
class TextManipulator { text: string; constructor(text: string) { this.text = text; } appendText(newText: string) { return this.text.concat(newText); } findAndReplace(word: string, replacementWord: string) { if (this.text.includes(word)) { this.text.replace(word, replacementWord); } return this.text; } printText() { console.log("The text is ", this.text); } }
在上面的程式碼中,我們可以看到該類別也在執行列印操作。這打破了單一職責原則。我們可以透過建立兩個新類別來重構程式碼
class TextManipulator { private text: string; constructor(text: string) { this.text = text; } appendText(newText: string) { return this.text.concat(newText); } findAndReplace(word: string, replacementWord: string) { if (this.text.includes(word)) { this.text.replace(word, replacementWord); } return this.text; } getText() { return this.text; } } class PrintText { formattedText: TextManipulator; constructor(formattedText: TextManipulator) { this.formattedText = formattedText; } printText() { console.log("The text is ", this.formattedText.getText()); } }
在重構的程式碼中,我們有兩個單獨的類別正在執行單獨的操作。
採用單一職責原則,我們可以實現以下目標:-
實施單一責任原則的技巧是要知道我們類的單一責任是什麼。然而,每個開發人員都有他/她對類責任的願景,並且由於我們沒有任何關於如何實現的說明,所以我們只能有自己的解釋。
在某些情況下,我們將兩個類別分開,實際上從業務或架構的角度來看,它們在做同樣的事情。這可以創建更複雜的程式碼,兩個類別緊密耦合彼此,從而減少SOLID原則
的唯一目的關鍵是創建新類別時不要想太多
以上是了解 TypeScript 中的單一職責原則:快速指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!