簡單介紹架構設計的原則!

候鳥之戀發表於2022-03-22

  單一職責原則

理解:對於一個類而言,應該僅有一個引起它變化的原因。說白了就是,不同的類具備不同的職責,各施其責。這就好比一個團隊,大家分工協作,互不影響,各做各的事情。

 

應用:當我們做系統設計時,如果發現有一個類擁有了兩種的職責,那就問自己一個問題:可以將這個類分成兩個類嗎?如果真的有必要,那就分吧。千萬不要讓一個類乾的事情太多!

 

2 開放封閉原則

理解:簡言之,對擴充套件開放,對修改封閉。換句話說,可以去擴充套件類,但不要去修改類。

 

應用:當需求有改動,要修改程式碼了,此時您要做的是,儘量用繼承或組合的方式來擴充套件類的功能,而不是直接修改類的程式碼。當然,如果能夠確保對整體架構不會產生任何影響,那麼也沒必要搞得那麼複雜了,直接改這個類吧。

 

里氏替換原則

理解:父類能夠替換子類,但子類不一定能替換父類。也就是說,在程式碼中可以將父類全部替換為子類,程式不會報錯,也不會在執行時出現任何異常,但反過來卻不一定成立。gendan5.com/nmetal/ruthenium.html

 

應用:在繼承類時,務必重寫(Override )父類中所有的方法,尤其需要注意父類的 protected 方法(它們往往是讓您重寫的),子類儘量不要暴露自己的 public 方法供外界呼叫。

 

最少知識原則

理解:儘量減少物件之間的互動,從而減小類之間的耦合。簡言之,一定要做到:低耦合,高內聚。

 

應用:在做系統設計時,不要讓一個類依賴於太多的其他類,需儘量減小依賴關係,否則,您死都不知道自己怎麼死的。

 

介面隔離原則

理解:不要對外暴露沒有實際意義的介面。也就是說,介面是給別人呼叫的,那就不要去為難別人了,儘可能保證介面的實用。

 

應用:當需要對外暴露介面時,需要再三斟酌,如果真的沒有必要對外提供的,就刪了吧。一旦您提供了,就意味著,您將來要多做一件事情,何苦要給自己找事做呢。

 

依賴倒置原則

 

理解:應該面向介面程式設計,不應該面向實現類程式設計。面向實現類程式設計,相當於就是論事,那是正向依賴(正常人思維);面向介面程式設計,相當於透過事物表象來看本質,那是反向依賴,即依賴倒置(程式設計師思維)。

 

應用:並不是說,所有的類都要有一個對應的介面,而是說,如果有介面,那就儘量使用介面來程式設計吧。

 

將以上六大原則的英文首字母拼在一起就是 SOLID (穩定的),所以也稱之為 SOLID 原則。只有滿足了這六大原則,才能設計出穩定的軟體架構!但它們畢竟只是原則,只是四人幫給我們的建議,有些時候我們還是要學會靈活應變,千萬不要生搬硬套,否則只會把簡單問題複雜化


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014563/viewspace-2882921/,如需轉載,請註明出處,否則將追究法律責任。

相關文章