SOLID 設計原則. 當工程師大概半年左右的時間 - Medium

文章推薦指數: 80 %
投票人數:10人

設計模式:SOLID Principles 物件導向原則. 當工程師大概半年左右的時間,在工作的過程中慢慢理解到設計模式的重要性,過去總是以能快速實作功能為第 ... GetunlimitedaccessOpeninappHomeNotificationsListsStoriesWrite設計模式:SOLIDPrinciples物件導向原則當工程師大概半年左右的時間,在工作的過程中慢慢理解到設計模式的重要性,過去總是以能快速實作功能為第一優先,因此常忽略了需要保留後續擴充的空間性,所以今天稍微整理了程式開發的五個基本物件導向原則—SOLID。

SOLID五大基本原則如下:SingleResponsibilityPrinciple(SRP)—單一職責原則所謂單一職責,顧名思義就是遵守PureFunction的大原則,最終希望達到的目的即是程式碼的「高內聚」。

簡單來說即是每個Function只接受單一任務,如此在後續修改上也將相對容易。

OpenClosedPrinciple(OCP)—開放封閉原則OCP的大目的即是增加延展上的彈性,這部分對於在跑敏捷式開發的團隊可能會特別有感,原因在於產品功能在開發期間可能會不斷的被修改,因此保留一定的彈性將非常重要。

LiskovSubstitutionPrinsple(LSP)—里氏替換原則「父類別出現的地方,子類別就能代替它」,即父類別所擁有的方法,子類別不僅能覆寫外,還能自行衍伸出其他方法,但需特別留意當子類別衍伸擴充方法時,是否發生與SRP單一原則有所衝突,以避免在遵行執行替換原則時,導致程式碼低內聚的發生。

InterfaceSsegregationPrinsple(ISP)—介面隔離原則使用者不應被強迫使用他們不需要的介面,因此大原則即是介面功能應該盡量細分,達到單一介面只提供一個商業邏輯為主,原因在於程式開發過程中,多個專用介面會比一個綜合的介面更為靈活,在面對後續的擴散或維護上也將更為容易。

DependencyInversionprinciple(DIP)—相依反轉原則DIP的原則即是依賴應該維持單向性,即高階模組不應依賴低階模組,兩個都應該依賴在抽象概念上;抽象概念不依賴細節,而是細節依賴在抽象概念。

上面說明有點抽象,簡單來說子類別依賴服類別是理所當然,但是父類別不應該依賴子類別內的實作功能,而抽象類別內不應該有太多細節,而實作類別反而需要依賴抽象類別中的細節。

附上一段遵守SOLID中的S、O及D程式碼。

第八行:OriginalProduct這個class遵從SRP原則,只執行單一任務;同時因為透過協定的關係,實作了Product中的細節部分,也正好遵從了DIP原則。

第十七行、十八行:透過private的方式實作出一個常數,並在class中實作,也因為符合了OCP原則,因此在後續擴充上變得更為容易。

--MorefromHsinChenFollowiOSSoftwareEngineer、TechnicalNote、WorkingExperience//Lovepodcastsoraudiobooks?Learnonthegowithournewapp.TryKnowableAboutHelpTermsPrivacyGettheMediumappGetstartedHsinChen9FollowersiOSSoftwareEngineer、TechnicalNote、WorkingExperience//FollowMorefromMediumRavikiranNandulaWhatisIOCandDependencyInjectionMohamedIbrahimAhmedWhatisServiceMesh?KayvanKasebinSoftwareDevelopmentTheLayeredArchitecturePatterninSoftwareArchitectureArdilMohamedSingletonDesignPatternHelpStatusWritersBlogCareersPrivacyTermsAboutKnowable



請為這篇文章評分?