簡單介紹架構設計的原則!
單一職責原則
理解:對於一個類而言,應該僅有一個引起它變化的原因。說白了就是,不同的類具備不同的職責,各施其責。這就好比一個團隊,大家分工協作,互不影響,各做各的事情。
應用:當我們做系統設計時,如果發現有一個類擁有了兩種的職責,那就問自己一個問題:可以將這個類分成兩個類嗎?如果真的有必要,那就分吧。千萬不要讓一個類乾的事情太多!
2 開放封閉原則
理解:簡言之,對擴充套件開放,對修改封閉。換句話說,可以去擴充套件類,但不要去修改類。
應用:當需求有改動,要修改程式碼了,此時您要做的是,儘量用繼承或組合的方式來擴充套件類的功能,而不是直接修改類的程式碼。當然,如果能夠確保對整體架構不會產生任何影響,那麼也沒必要搞得那麼複雜了,直接改這個類吧。
里氏替換原則
理解:父類能夠替換子類,但子類不一定能替換父類。也就是說,在程式碼中可以將父類全部替換為子類,程式不會報錯,也不會在執行時出現任何異常,但反過來卻不一定成立。gendan5.com/nmetal/ruthenium.html
應用:在繼承類時,務必重寫(Override )父類中所有的方法,尤其需要注意父類的 protected 方法(它們往往是讓您重寫的),子類儘量不要暴露自己的 public 方法供外界呼叫。
最少知識原則
理解:儘量減少物件之間的互動,從而減小類之間的耦合。簡言之,一定要做到:低耦合,高內聚。
應用:在做系統設計時,不要讓一個類依賴於太多的其他類,需儘量減小依賴關係,否則,您死都不知道自己怎麼死的。
介面隔離原則
理解:不要對外暴露沒有實際意義的介面。也就是說,介面是給別人呼叫的,那就不要去為難別人了,儘可能保證介面的實用。
應用:當需要對外暴露介面時,需要再三斟酌,如果真的沒有必要對外提供的,就刪了吧。一旦您提供了,就意味著,您將來要多做一件事情,何苦要給自己找事做呢。
依賴倒置原則
理解:應該面向介面程式設計,不應該面向實現類程式設計。面向實現類程式設計,相當於就是論事,那是正向依賴(正常人思維);面向介面程式設計,相當於透過事物表象來看本質,那是反向依賴,即依賴倒置(程式設計師思維)。
應用:並不是說,所有的類都要有一個對應的介面,而是說,如果有介面,那就儘量使用介面來程式設計吧。
將以上六大原則的英文首字母拼在一起就是 SOLID (穩定的),所以也稱之為 SOLID 原則。只有滿足了這六大原則,才能設計出穩定的軟體架構!但它們畢竟只是原則,只是四人幫給我們的建議,有些時候我們還是要學會靈活應變,千萬不要生搬硬套,否則只會把簡單問題複雜化
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014563/viewspace-2882921/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【架構設計】保持簡單輕量設計的三個原則——DRY,KISS, YAGNI架構
- SOLID架構設計原則Solid架構
- 無伺服器架構的簡單介紹伺服器架構
- 簡單介紹Python 處理錯誤的原則Python
- 簡單介紹常見的三種架構設計模式及其優缺點!架構設計模式
- 雲原生架構及設計原則架構
- 解析 Android 架構設計原則Android架構
- 極限程式設計中的簡單設計原則程式設計
- 軟體架構設計原則和模式(上):分層架構設計架構模式
- 架構整潔之道二(設計原則)架構
- [分散式]架構設計原則--高併發分散式架構
- 實戰解析Android架構設計原則Android架構
- javascript設計模式單例模式簡單介紹JavaScript設計模式單例
- 架構設計的五大原則-SOLID架構Solid
- 【虹科乾貨】設計微服務架構的原則微服務架構
- 微服務架構的特徵簡要介紹微服務架構特徵
- Apache 的架構師們遵循的 30 條設計原則Apache架構
- js DSL超程式設計簡單介紹JS程式設計
- JavaScript 模組化程式設計簡單介紹JavaScript程式設計
- 設計模式和反模式簡單介紹設計模式
- Linux 程式設計工具簡單介紹Linux程式設計
- 設計和架構:業務開發指導原則架構
- 360°透視:雲原生架構及設計原則架構
- 遊戲引擎介紹,架構,設計及實現遊戲引擎架構
- Angular應用架構設計-5:設計原則與總結Angular應用架構
- 設計模式之六大原則(簡介)設計模式
- 掌握4C原則,設計高效的系統架構架構
- JSON格式或者規則簡單介紹JSON
- 設計原則之【單一職責原則】
- html文件結構簡單介紹HTML
- Java中23種設計模式:六大設計原則的分析與介紹Java設計模式
- 【架構設計】你真的理解軟體設計中的SOLID原則嗎?架構Solid
- 架構設計要按照什麼原則進行呢?架構
- 簡潔的網頁設計原則網頁
- 架構之思-分析那些深入骨髓的設計原則架構
- html5幾個簡單語法規則簡單介紹HTML
- Mybatis原始碼分析(一)Mybatis的架構設計簡介MyBatis原始碼架構
- 雲端計算架構設計6大原則遵循了哪些?架構