設計原則之美學習筆記 設計原則

2021-10-08 13:31:30 字數 909 閱讀 5778

乙個類只負責完成乙個職責或者功能。不要設計大而全的類,要設計粒度小、功能單一的類。單一職責原則是為了實現**高內聚、低耦合,提高**的復用性、可讀性、可維護性。

不同的應用場景、不同階段的需求背景、不同的業務層面,對同乙個類的職責是否單一,可能會有不同的判定結果。實際上,一些側面的判斷指標更具有指導意義和可執行性,比如,出現下面這些情況就有可能說明這類的設計不滿足單一職責原則:類中的**行數、函式或者屬性過多;類依賴的其他類過多,或者依賴類的其他類過多;私有方法過多;比較難給類起乙個合適的名字;類中大量的方法都是集中操作類中的某幾個屬性。

單一職責原則通過避免設計大而全的類,避免將不相關的功能耦合在一起,來提高類的內聚性。同時,類職責單一,類依賴的和被依賴的其他類也會變少,減少了**的耦合性,以此來實現**的高內聚、低耦合。但是,如果拆分得過細,實際上會適得其反,反倒會降低內聚性,也會影響**的可維護性。

新增乙個新的功能,應該是通過在已有**基礎上擴充套件**(新增模組、類、方法、屬性等),而非修改已有**(修改模組、類、方法、屬性等)的方式來完成。關於定義,我們有兩點要注意。第一點是,開閉原則並不是說完全杜絕修改,而是以最小的修改**的代價來完成新功能的開發。第二點是,同樣的**改動,在粗**粒度下,可能被認定為「修改」;在細**粒度下,可能又被認定為「擴充套件」。

我們要時刻具備擴充套件意識、抽象意識、封裝意識。在寫**的時候,我們要多花點時間思考一下,這段**未來可能有哪些需求變更,如何設計**結構,事先留好擴充套件點,以便在未來需求變更的時候,在不改動**整體結構、做到最小**改動的情況下,將新的**靈活地插入到擴充套件點上。很多設計原則、設計思想、設計模式,都是以提高**的擴充套件性為最終目的的。特別是 23 種經典設計模式,大部分都是為了解決**的擴充套件性問題而總結出來的,都是以開閉原則為指導原則的。最常用來提高**擴充套件性的方法有:多型、依賴注入、基於介面而非實現程式設計,以及大部分的設計模式(比如,裝飾、策略、模板、職責鏈、狀態)。

網頁美學設計原則 下

二 平面 設計編排構成原理 多 觀眾一方面從計算機螢幕上所呈現的視覺表徵得到資訊,做出反應 另一方面根據其美感經驗,從計算機螢幕上賞心悅目的視覺呈現,引起他的良好溝通情緒。乙個賞心悅目的視覺呈現有賴於 設計者的創意 idea 表現技巧 technique 編排 lay out 能力。目前許多國內 設...

設計模式 學習筆記之設計原則

這好像是我第一次開始寫部落格,還是有點激動的,俗話說的好,好記性不如爛筆頭,更何況我的記性還不好,所以我決定在學習設計模式的同時,將其中自己認為重要的知識點記錄下來,讓以後自己回頭查詢知識點的時候能更快一些。首先,講一講設計原則。設計原則詳解 設計模式存在的根本原則是為了 的復用,增加可維護性。有如...

設計模式之美學習 設計原則之單一職責 四

一種理解是 把模組看作比類更加抽象的概念,類也可以看作模組。另一種理解是 把模組看作比類更加粗粒度的 塊,模組中包含多個類,多個類組成乙個模組。乙個類只負責完成乙個職責或者功能。也就是說,不要設計大而全的類,要設計粒度小 功能單一的類。換個角度來講就是,乙個類包含了兩個或者兩個以上業務不相干的功能,...