軟體設計的幾大原則匯總

2020-12-16 Java猿猿
軟體設計的幾大原則匯總

單一職責原則

單一職責原則:英文為Single Responsibility Principle(SRP),這個原則要求我們在設計類或者接口的時候。尤其在設計接口的時候把職責分清楚,通常一個職責不是單一的方法,是一類方法的組合。

在開發的時候很難做到單一,我們在接口設計時一定做單單一,在類的設計時儘量做到單一原因引起變化。

依賴倒置原則

依賴倒置原則:High level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Details should depend upon abstractions. 大概的意思為高層模塊不應該依賴底層模塊,他們都應該依賴抽象。抽象不能依賴細節。細節應該依賴抽象。

這個原則要求設計的時候儘量用抽象(抽象類或者接口)把各個模塊獨立開來,實現解耦,使各模塊相對獨立。

這個原則簡單來說就是要用面向接口設計

接口隔離原則

接口隔離原則(Interface Segregation Principle, ISP),說到接口,其實分兩種,分別為類實例接口(Object interface)和類接口(Class interface)。這個原則依賴建立在最小的接口之上,依賴自己需要的接口。

迪米特法則

迪米特法則:Law of Demetter(LoD),也稱為最少知識原則。就是一個對象應該對其他對象有最少的了解。這個法則的本質就是解耦,解耦是有限度的不能為了解耦而解耦。

裡氏替換原則

裡氏替換原則:Functions that use references to base classes must be able to use objects of the derived class without knowing it.(所有引用基類的地方,都能透明地使用其子類的對象)

簡單來說就是父類出現的地方,替換為子類不會產出異常。

裡氏替換原則的好處就是增強程序的健壯性,保持程序的兼容性。

開閉原則

開閉原則:Software entities like classes, modules and functions should be open for extendsion but closeed for modifications. 意思是說軟體的實體如類,模塊和函數應該對擴展開發,對修改關閉。

這個原則要求我們設計的系統擴展性好,因為需要不會一直不變的,我們需要應對的永遠是變化。

這6個原則是建立穩定的,靈活和健壯設計的基礎,這些都只是是原則,設計的時候還要根據實際情況考慮。

相關焦點

  • 軟體設計模式六大原則,你懂多少呢?
    軟體設計模式軟體設計模式,簡稱設計模式,它是一種反反覆覆被使用,多數人經過分類編目的,代碼設計經驗的總結。使用設計模式可以為了減少重複的代碼,讓代碼變得更加簡潔,讓人更加容易理解,保證代碼的可靠性,程序可重複性。設計模式的六大原則,你懂多少呢?1.六大原則-單一職責原則原則思想:一個方法只負責一件事情。
  • 設計原則之開閉原則
    【IT168 分析評論】    開閉原則是設計原則基礎的基礎,其它原則均圍繞開閉原則進行展開。開閉原則也就是一個軟體實體應當對擴展開放,但對修改關閉。滿足了開閉原則的設計,我們的系統將達到在設計穩定的基礎上,方便的對軟體進行擴展,插入新的功能模塊的目的。    怎麼樣做的開閉原則呢?
  • 設計模式設計原則——備忘錄
    2、裡氏代換原則(Liskov Substitution Principle)裡氏代換原則是面向對象設計的基本原則之一。裡氏代換原則:任何父類可以出現的地方,子類一定可以出現。裡氏替換原則是繼承復用的基石,只有當子類可以替換掉父類,且軟體的功能不受到影響時,父類才能真正被復用,而子類也可以再父類的基礎上增加新的行為。裡氏代換原則是對開閉原則的補充。 實現開閉原則的關鍵步驟就是抽象化,而父類與子類的繼承關係就是抽象化的具體體現,所以裡氏代換原則是對實現抽象化的具體步驟的規範。
  • 設計的五大原則-SOLID
    在這本書裡面的第三章介紹了設計原則,這部分我覺得對於大家的平時工作都比較有用。2. 設計原則想必大家在學習面向對象的時候,都學習過下面幾大原則:SRP 單一職責:該設計原則是基於康威定律的推論,每個軟體模塊有且只有一個被更改的理由。OCP 開閉原則:對擴展開放,對修改關閉。LSP 裡氏替換原則:任何基類可以出現的地方,子類一定可以出現。
  • 軟體設計原則之依賴反轉(Dependency inversion principle,DIP)
    3 傳統分層架構缺陷3.1 維護困難高層模塊通常是業務邏輯和策略模型,是一個軟體的核心。正是高層模塊使一個軟體區別於其他軟體,而低層模塊則更多的是框架細節。若高層模塊依賴低層,就是業務邏輯依賴技術細節,技術細節改變將影響業務邏輯。由技術細節改變而影響業務代碼,這顯然不合理。
  • Python RPG遊戲實例演示面向對象軟體設計原則
    注意我們本文敘述設計原則也適用於非OOP語言。要寫出一手清晰,高質量,可維護和可擴展的代碼,一個碼農需要了解和利用幾十年內業界積累下的經驗和通過實踐證明有效的設計原則。這就是本文主題的意義所在。文中所及的方法將以Python為例。有些例子可以證明一個觀點,其他方面可以不會論及太多。
  • SOLID設計原則解釋 - 單一責任原則
    SOLID是面向對象軟體開發中最流行的設計原則之一。>單一責任原則的好處在我們深入探討這個設計原則之前,讓我們先解決最重要的問題:為什麼要使用它?驗證您的設計的簡單問題不幸的是,遵循單一責任原則聽起來比通常容易得多。如果您在較長時間內構建軟體,並且需要根據不斷變化的需求進行調整,那麼最簡單,最快速的方法似乎是在現有代碼中添加方法或功能,而不是編寫新的類或組件。
  • 電路開發設計使用的軟體匯總
    電路開發設計需要學習的軟體有哪些?電路設計軟體指的是電路圖繪製、優化、測試、仿真類軟體。
  • 網頁設計製作常用的幾款軟體
    從目前所使用的網站編輯軟體工具來說類別是越來越多,使用起來也是過各有千秋使用起來很是方便,所以在更入門的新手也是提供了比較方便的設計途徑,讓網頁製作起來是越來越方便,所以導致目前進軍網站建設行業的人員是越來越多,導致網站建設製作變成了一件非常輕鬆的工作。對此我們總結了網頁設計製作常用的幾款軟體,希望對於想要進入網絡大潮中分一杯羹的同志得到一些幫助。
  • 平面設計一定要會的幾款軟體
    隨著人們生活水平的提高,平面設計在我們的日常生活中顯得越來越重要,無論是淘寶店鋪裝修,還是企業產品包裝、形象宣傳,甚至是我們日常穿的衣服、住的房子都離不開平面設計的參與,近幾年來平面設計從業人員在逐年遞增,各大學校平面設計專業尤為火爆,作為一名平面設計工作從業者,下面金老師就來為你介紹一下平面設計一定要會的幾款軟體。
  • 人機界面設計原則及設計思想
    那麼什麼是人機界面設計呢,人機界面設計原則有哪些呢?小編通過搜集整理資料對有關人機界面設計原則、設計思想及設計所包含的內容作了簡單的歸納總結。  什麼是人機界面設計  人機界面設計是指通過一定的手段對用戶界面有目標和計劃的一種創作活動。大部分為商業性質、少部分為藝術性質。
  • 再談面向對象的設計原則
    談到面向對象,們毫不猶豫的說出面向對象的三大特徵:封裝、繼承、多態,面向對象這在軟體的構架設計中是非常重要的,最能直接體現出來的優點就是軟體的擴展性和重用性。要理解面向對象編程,只停留在開發層面上,是無法深入理解的。只有在設計層面上展開才能逐步的領會面向對象。但在實際的開發中,並不是每一個人都能夠接觸到核心的設計工作。
  • 什麼是裝修設計軟體?裝修設計軟體有哪些?
    什麼是裝修設計軟體?裝修設計軟體是一種電腦設計軟體的統稱。這種軟體需要在電腦上運行使用,進行網站頁面和畫面的設計工作。用通俗的說法就是能做成裝修圖紙的軟體,包括平面圖結構圖效果圖等。裝修設計軟體是當前功能最強、效果最好、最受用戶歡迎的裝修設計軟體。裝修設計軟體包括Envisioneer、Photoshop、AutoCAD、fireworks、Myhome3D,可牛,CorelDRAW、IIIustator、Freehand、PageMaker、Photolmpact、3Dmax、vary、maya等。裝修設計軟體有哪些?
  • 廣聯達軟體+教程+視頻大匯總,教你七天玩轉廣聯達
    廣聯達軟體+教程+視頻大匯總,教你七天玩轉廣聯達進入21世紀以來,座座高樓拔地起,建築行業的飛速發展,導致工程量的計算變得更加複雜,繁重,僅靠人工已經不能滿足工作需要。於是廣聯達這個軟體隨之橫空出世,很大程度上提高了工作效率,工作準確性。目前廣聯達已經成為市面上使用最常用的造價軟體了,深受從事造價朋友的喜愛。
  • 乾貨:績效指標權重設計的原則 值得借鑑
    績效指標權重設計的原則 績效指標的權重設計,大都是憑人為經驗判定的,簡單的操作都是業務部門建議,人力資源部審核。但其設計也不能太隨意,可以參考一定的原則。 (2)越是高層的崗位,財務性經營指標和業績指標的權重就越大;越是基層的崗位,流程類指標的權重就越小,而和崗位職責相關的工作結果類指標的權重越大。
  • 爬梯:七大設計原則
    設計原則設計模式原則,其實就是程式設計師在編程時,應當遵守的原則,也是各種設計模式的基礎(即:設計模式設計的依據)1、單一職責原則基本介紹對類來說,即一個類應該只負責一項職責。5、開閉原則Open Closed Principle1)一個軟體實體如類、模塊和函數應該是對擴展開放,對修改關閉。用抽象構建框架,用實現擴展細節。
  • 軟體工程專業的畢業設計怎麼選題?
    它涉及到程式語言、資料庫、軟體開發工具、系統開發平臺、標準、設計模式等一些方面。3、相關學者、組織機構給出的定義:Boehm:運用現代科學技術知識來設計並構造電腦程式及為開發、運行和維護這些程序所必需的相關文件資料;IEEE:軟體工程是開發、運行、維護和修復軟體的系統方法;Fritz Bauer:建立並使用完善的工程化原則,以比較經濟的手段獲得能在實際機器上高效運行的可靠軟體的一系列方法
  • 乾貨|優秀架構師必須了解的6大方面30條設計原則
    今天,我再總結一下,優秀架構師必須了解的6大方面30條設計原則,供大家參考以及思考。在過去八年中,我們對許多產品和功能進行了討論、設計、改進和重新設計。我們在設計軟體的過程中,把握的一個關鍵點是:軟體架構並非由架構師負責設計。我們的架構不是由架構師制定,然後交給其他人來實施。相反,架構的設計任務由真正編寫代碼的團隊負責。
  • 史上最完整互動設計基本原則|推薦收藏
    原則:你的用詞和視覺設計都必須傳達出系統能恢復(復位)的範圍 要確保通過用戶測試來看用戶是否明白系統能恢復的範圍或程度:恢復系統僅僅通過用戶簡單地註冊幾步還是他們將會花費幾天的時間來給每個應用重新輸入用戶名密碼登錄進去。 測試你的恢復選項來發現用戶覺得點擊按鈕之後會導致什麼結果。
  • 室內設計初學者應該掌握哪幾款軟體?(內附無病毒軟體安裝包)
    回歸到最接地氣的部分,如果你想學習室內設計,除卻思維層面的東西,你最先需要掌握的是哪幾款軟體?1、首當其衝,AutoCAD。毋庸置疑,CAD是設計類人員必須掌握的一款軟體,也是基本的入門軟體。它是一款國際上公認的繪圖工具,就目前而言,室內設計師的平面方案及施工圖繪製主要還是通過CAD的。