程序設計開發的六大原則 核心思想

2020-12-16 IT168

  【IT168 評論】

   一、單一職責原則

  Single Responsibility Principle,應該有且僅有一個原因引起類的變更,實際中比較不好把握,因為職責的劃分沒有一個統一的標準。

  二、裡氏替換原則

  Liskov Substitution Principle,通俗點講,只要父類能出現的地方子類就可以出現,而且替換為子類也不會產生任何錯誤或異常,使用者可能根本就不需要知道是父類還是子類。但是,反過來就不行了,有子類出現的地方,父類未必就能適應。

  三、依賴倒置原則

  Dependence Inversion Principle,高層模塊不應該依賴低層模塊,兩者都應該依賴其抽象;抽象不應該依賴細節;細節應該依賴抽象;在Java語言中的表達就是,模塊間的依賴通過抽象發生,實現類之間不發生直接的依賴關係,其依賴關係是通過接口或抽象類產生的;接口或抽象類不依賴於實現類;實現類依賴接口或抽象類。

  四、接口隔離原則

  Interface Segregation Principle,建立單一接口,不要建立臃腫龐大的接口,接口儘量細化,同時接口中的方法儘量少。(單一職責要求的是類和接口職責單一,注重的是職責,這是業務邏輯上的劃分,而接口隔離原則要求接口的方法儘量少。例如一個接口的職責可能包含10個方法,這10個方法都放在一個接口中,並且提供給多個模塊訪問,各個模塊按照規定的權限來訪問,在系統外通過文檔約束「不使用的方法不要訪問」,按照單一職責原則是允許的,按照接口隔離原則是不允許的,因為它要求「儘量使用多個專門的接口」。)

  五、迪米特原則

  Law of Demeter,一個對象應該對其他對象有最少的了解。通俗地講,一個類應該對自己需要耦合或調用的類知道得最少,你(被耦合或調用的類)的內部是如何複雜都和我沒關係,那是你的事情,我就知道你提供的這麼多public方法,我就調用這麼多,其他的我一概不關心。

  六、開閉原則

  Open Closed Principle,軟體實體應該對擴展開放,對修改關閉,其含義是說一個軟體實體應該通過擴展來實現變化,而不是通過修改已有的代碼來實現變化。

  總結:

  之所以有這麼多的原則來指導我們進行程序的設計和開發,是因為我們的程序存在未知的改變。為了以最低的代價擁抱這種未知的變化,前輩們給我們總結了這麼多原則,開閉原則應該是每一個大師的終極目標。在所有這些原則中,很重要的一環就是抽象類和接口的靈活運用。後面的23種具體的設計模式也是對「變化「的總結。

相關焦點

  • 軟體設計模式六大原則,你懂多少呢?
    使用設計模式可以為了減少重複的代碼,讓代碼變得更加簡潔,讓人更加容易理解,保證代碼的可靠性,程序可重複性。設計模式的六大原則,你懂多少呢?1.六大原則-單一職責原則原則思想:一個方法只負責一件事情。2.六大原則-裡氏替換原則原則思想:使用的基類可以在任何地方使用繼承的子類,完美的替換基類。
  • 六大設計原則超詳細介紹(再不理解你打我)
    軟體設計最大的難題就是應對需求的變化,但是紛繁複雜的需求變化又是不可預料的,我們要為不可預料的變化做好準備,這本身是一件非常痛苦的事情,但好在有大師們已經給我們提出了非常好的六大設計原則和23種設計模式來「封裝」未來的變化。本文只針對六大設計原則進行介紹,設計模式放在後面的文章進行詳解。
  • 人機界面設計原則及設計思想
    那麼什麼是人機界面設計呢,人機界面設計原則有哪些呢?小編通過搜集整理資料對有關人機界面設計原則、設計思想及設計所包含的內容作了簡單的歸納總結。  什麼是人機界面設計  人機界面設計是指通過一定的手段對用戶界面有目標和計劃的一種創作活動。大部分為商業性質、少部分為藝術性質。
  • PLC程序開發的基本思想,順序編程的實現
    PLC程序開發的基本思想,順序編程的實現此外,熱繼電器FR的觸頭只能接成常閉的,通常不作為PLC的輸入信號,PLC程序開發PLC程序開發圖3a是一個簡單的邏輯功能圖。一般與功能塊有關的輸入信號畫在方塊的左邊,與功能塊有關的輸出信號畫在方塊的右邊。在左邊和右邊應分別寫上標誌符和地址碼。
  • 小程序開發
    小程序開發成為更好的軟體開發人員。我如何進一步證明這一點?只需觀察一下,就可以成功地編譯可正常運行的C ++程序並對其進行故障排除並與Java或許多其他語言相同的技能之下進行比較。事實證明,Java旨在消除維護C ++應用程式通常需要的許多功能。?低代碼平臺是指圍繞著企業的業務需求通過可視化操作的方式,搭建軟體架構、定義工作流程和設置訪問權限的軟體開發平臺。
  • 如何實現程序類設計的高內聚和低耦合的系統設計目標(上篇)
    作者從本文開始,並通過後續的多篇文章試圖對這些與程序類設計有關的各種問題給讀者一個明確的答案和技術指導,以期望讀者(特別是在校的IT類相關專業學生)的課程設計、項目實訓(包括畢業設計)等實訓類型的教學項目開發能夠達到一定的技術水準,同時也希望讀者能夠把在軟體工程、計算機軟體應用技術等課程中所學習到的各種軟體系統的設計思想和設計原則真正地實踐和體驗,而不要僅僅停留在對這些設計思想
  • 宏昌科技設計開發控制程序完善,設計開發周期優勢突出
    宏昌科技設計開發控制程序完善,設計開發周期優勢突出 2020-12-24 14:29:22     來源:網際網路    作者:     點擊:
  • 設計模式六大原則(4):接口隔離原則
    如果將這個設計修改為符合接口隔離原則,就必須對接口I進行拆分。在這裡我們將原有的接口I拆分為三個接口,拆分後的設計如圖2所示:(圖2 遵循接口隔離原則的設計)照例貼出程序的代碼,供不熟悉類圖的朋友參考:interface I1 { public void method1
  • 再談面向對象的設計原則
    談到面向對象,們毫不猶豫的說出面向對象的三大特徵:封裝、繼承、多態,面向對象這在軟體的構架設計中是非常重要的,最能直接體現出來的優點就是軟體的擴展性和重用性。要理解面向對象編程,只停留在開發層面上,是無法深入理解的。只有在設計層面上展開才能逐步的領會面向對象。但在實際的開發中,並不是每一個人都能夠接觸到核心的設計工作。
  • 中小學程序設計教育的挑戰
    鍾柏昌:教育對象的普及首先體現在國家層面對推廣編程教育的政策導向,尤其在修訂後的高中信息技術課程標準中,必修模塊1(數據與計算)已經將程序設計相關內容列為核心內容,在高中階段普及程序設計教育已成定局。在教育對象的普及化方面,挑戰在於,「千人一面」的普及教育可能面臨「一刀切」的風險,落入史上「全民學習BASIC」的窠臼。
  • ...六大開發中心——華為3Com搭造建設銀行總行六大開發中心網絡平臺
    此網絡平臺建成後,將為建行位於北京、上海、廈門、武漢、廣州和成都的六大開發中心提供一個安全、穩定、快速的系統環境,緩解建行總行在應用部署和遠程訪問方面所面臨的壓力,同時也為建總行培養高級專業維護、開發人才提供了網絡實踐基礎。
  • .NET 設計模式的六大原則理論知識
    依賴倒置原則(DIP)(Dependence Inversion Principle)4. 接口隔離原則(ISP)(Interface Segregation Principle)5. 迪米特原則(LOD)(Law Of Demeter)6.
  • 中國學生發展的六大核心素養是什麼?家長快收藏
    以前我們都說,學好數理化,走遍天下都不怕,現在應該換成這句話,有了六大核心素養,走遍天下都不怕。到底有哪六大核心素養呢? 9月13日上午,中國學生發展核心素養研究成果發布會在北京師範大學舉行。北京師範大學校長董奇、教育部基礎教育二司副司長申繼亮出席會議並致辭。
  • 如何實現程序類設計的高內聚和低耦合的系統設計目標(下篇)
    當然,對於面向對象OOP類設計的五大設計原則主要的思想體現、以及設計人員如何運用這些設計原則等具體的內容請讀者閱讀作者的「J2EE項目實訓——UML及設計模式」一書中的第9章「面向對象設計的五大原則」的有關內容。
  • 使用5W1H原則分析小程序
    誰是小程序的用戶?用戶為什麼要用小程序?用戶什麼時候會用小程序?用5W1H的原則,來分析小程序,會得出什麼不一樣的結論呢?作為一個產品經理,一開始我是拒絕小程序的。小程序剛出現的時候,我認為從用戶習慣、小程序的產品形態等因素考慮,小程序很難替換掉App。
  • 語音交互中的話術設計原則 — 百度DuerOS 喚醒之旅workshop分享
    百度DuerOS團隊,在會上詳細講解了DuerOS開發者生態,對話式AI技能開發的實用工具和案例。百度人工智慧互動設計院受邀分享了《語音交互中的話術設計原則》主題內容,分享內容包括話術設計六大原則,具體的話術設計建議及示例,並結合遊戲技能的五類話術,提出了遊戲技能話術設計的注意事項。
  • 設計模式設計原則——備忘錄
    1、開閉原則(Open close principle)解釋:對擴展開放,對修改關閉。在程序需要進行拓展的時候,不能去修改原有的代碼,目標是實現一個熱插拔的效果。簡言之,是為了使程序的擴展性好,易於維護和升級。想要達到這樣的效果,我們需要使用接口和抽象類。2、裡氏代換原則(Liskov Substitution Principle)裡氏代換原則是面向對象設計的基本原則之一。
  • 《深入淺出面向對象分析與設計》讀後感|王鵬
    其核心思想我認為就是書中所說的偉大軟體開發的三個步驟:客戶要他做的事情即需求,需要我們通過需求分析確認,通過與客戶反覆溝通、交流收集用戶需求,利用UML建模工具繪製出系統的用例圖,考驗的是我們的業務分析以及領域建模的能力,這一點往往是我們在開發系統過程容易忽視的方面或者薄弱的地方,通常我們會從開發人員的角度而非用戶的角度去分析問題,想問題,這樣設計出來的系統往往用戶體驗較差,使用起來很不方便
  • 憲法修正案的六大核心要義
    深入學習宣傳和貫徹實施憲法,必須全面準確領會和把握這次憲法修正案的六大核心要義:1.確立了習近平新時代中國特色社會主義思想在國家政治和社會生活中的指導地位。反映了全國各族人民的共同意願,體現了黨的主張和人民意志的統一,明確了全黨全國人民為實現中華民族偉大復興而奮鬥的共同思想基礎。
  • 七大設計原則:接口隔離原則,你是怎麼應用的呢?
    ——陸遊※引導語在設計開發過程中往往會出現這麼一現象:在開始設計、開發的時候,一個接口的用來做什麼什麼的設計的很明確,前期開發過程中接口看著也比較惹人喜愛;隨著,開發周期的拉長,尤其是經過幾人手後,你會發現,它再也不是那個接口了,而是變得臃腫,都不想看了。