在廣闊的軟體工程世界中,有一個只有真正的工藝大師知道的隱藏寶藏。這個寶藏不是黃金或珠寶,而是一套將普通程式碼轉化為藝術品的指導原則。這些原則被稱為 SOLID,是乾淨、可維護和可擴展程式碼的基礎。

單一職責原則(SRP):

如果一個類別有很多職責,就會增加出現錯誤的可能性,因為對其職責之一進行更改可能會在您不知情的情況下影響其他職責。

例子:

「一個人應該有一份,而且只有一份工作要做。

想像一下,如果一個人必須做飯、服務、清潔和管理庫存。這將是混亂且低效的。相反,如果一個人做飯,另一個人服務,另一個人打掃衛生,另一個人管理庫存,一切都會順利進行。

圖片描述

開閉原則(OCP):

開放/封閉原則(OCP)規定係統應該對擴展開放,但對修改封閉。

簡單來說,它規定軟體實體(類別、模組、函數等)應該對擴充開放,但對修改關閉。這意味著模組的行為可以在不修改其原始程式碼的情況下進行擴充。

例子:

“在食譜中加入新食譜,而不改變現有食譜。”

想像一本食譜書,每次你想加入新食譜時,你都必須重寫整本書。相反,您只需在新頁面上加入新食譜即可,而無需觸及現有食譜。

圖片描述

里氏替換原則 (LSP)

里氏替代原則(LSP)規定替代品應該無縫地取代原始產品,沒有任何問題。

例子:

“替代品應該和原品一樣有效。”

想像一下在一家玩具店,您可以用另一輛玩具車替換任何玩具車,並且它仍然應該在同一條軌道上完美執行。如果你用玩具船代替玩具車,它就無法在汽車跑道上執行。

圖片描述

介面隔離原則 (ISP)

介面隔離原則 (ISP) 規定,任何人都不應被迫做他們不需要的事情。它相信簡單性和特異性。

例子:

“只做你需要做的事。”

想像一下,一部智慧型手機迫使您使用其所有應用程式,甚至是您不需要的應用程式。如果您只能使用您想要的應用程式,那就更好了。

圖片描述

依賴倒置原則(DIP)

依賴倒置原則 (DIP) 指出,高階操作不應依賴低階細節,而應依賴抽象。

例子:

“關注大局,而不是細節。”

考慮一盞燈和一個開關。如果開關直接控制燈泡,則燈泡的任何變更也需要更換開關。相反,如果開關透過介面控制任何設備,則它可以與任何類型的燈泡或設備配合使用。

圖片描述

結論

當我們的旅程即將結束時,我們意識到 SOLID 原則不僅僅是規則,而是編寫乾淨且可維護的程式碼的本質。透過遵循這些原則,我們可以建立健壯、靈活且易於理解的軟體。

請記住,通往精通的道路並不容易,但在 Simple 爵士、Opena 女士、Liskov 勳爵、Interface 先生和 Dependence 女士的指導下,您將在成為真正的程式碼工匠的道路上順利前進。

結論

  • 遵守 SOLID 原則: SOLID 原則對於編寫乾淨、可維護和可擴展的程式碼至關重要。每個原則都有一個特定的目的,共同提升軟體品質。

  • 單一職責原則(SRP):確保每個類別或模組只有一個職責,提高程式碼的可讀性和可維護性。

  • 開放/封閉原則(OCP):提倡設計開放擴展但封閉修改的系統,降低更新過程中引入錯誤的風險。

  • 里氏替換原則(LSP):保證子類別可以替換其基底類別而不改變程式的正確性,保證一致性和可靠性。

  • 介面隔離原則(ISP):提倡建立適合客戶需求的專用接口,避免不必要的依賴並提高模組化程度。

  • 依賴倒置原則 (DIP):鼓勵依賴抽象而不是具體實現,從而促進靈活且適應性強的架構。

  • 掌握之路:掌握這些原則需要實踐和奉獻,但它們的應用對於成為能夠建立強大且適應性強的系統的熟練軟體開發人員至關重要。

歡迎在下方留下您的意見或建議!您的回饋非常寶貴,可以幫助我改進。


原文出處:https://dev.to/krishna_kumarshakya_848d/the-art-of-clean-code-mastering-the-solid-principles-1n36


共有 0 則留言