大話設計模式-第三章 單一職責原則
<1>單一職責原則:就一個類而言,應該僅有一個引起它變化的原因;
2.OOP
<1>如果一個類承擔的職責過多,就等於把這些職責耦合在一起,一個職責的變化可能會消弱或者抑制這個類完成其他職責的能力.這種耦合會導致脆弱的設計,當變化發生時,設計會遭到意想不到的破壞;
<2>軟體設計的思想:
軟體設計真正要做的許多內容,就是發現職責並把那些職責相互分離;
PS:說起這個設計原則,讓我想起了大學時學習C語言的時候,那時候上課的豐洪才老師問了我們一個問題:一個方法完成的功能是越多越好嗎?
那個時候剛接觸程式語言,當時心裡理所當然的認為當然是完成的功能越多越好;直到在程式設計的道路上走著走著,才明白了其實職責越單一越好;
其實,有時候越是看上去簡單的東西,越難說清楚,也越難理解,大道至簡;
相關推薦
大話設計模式-第三章 單一職責原則
1.概念相關 <1>單一職責原則:就一個類而言,應該僅有一個引起它變化的原因; 2.OOP <1>如果一個類承擔的職責過多,就等於把這些職責耦合在一起,一個職責的變化可能會消弱或者抑制這個類完成其他職責的能力. 這種耦合會導致脆弱的設計,當變化發生時
js設計模式第三章 簡單工廠模式 讀書筆記
簡單工廠模式又叫靜態工廠方法,由一個工廠物件決定建立某一種產品物件類的例項。主要用來建立同一類的物件。 比如提示彈窗類 function createPop(type,text){ //建立一個物件,並對物件拓展屬性和方法 var o = new Object();
大話設計模式第1章——簡單工廠模式
簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法(Static Factory Method)模式,實質是由一個工廠類根據傳入的引數,動態決定應該建立哪一個產品類(這些產品類繼承自一個父類或介面)的例項。 該模式中包含三個角色: 工廠(Factory)角色 簡單工廠模式
設計模式(一)---單一職責原則
一個 設計 改變 可能 應該 原因 一起 軟件設計 單一職責 單一職責原則:就一個類而言,應該僅有一個引起它變化的原因。 如果一個類承擔的職責過多,就等於把這些職責耦合在一起,一個職責的變化可能會削弱或抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化
[Python設計模式] 第3~5章 單一職責原則/開放-封閉原則/依賴倒轉原則
抽象類 內容 編寫 cat 過程 裏氏代換原則 數據庫連接 無需 維護 單一職責原則 就一個類而言,應該僅有一個引起它變化的原因。 如果一個類承擔的職責過多,就等於把這些職責耦合在一起,一個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變
設計模式第三次作業
語言 led stat iter index mman 查看 模式 create 設計模式第三次作業 1.要求:某商品管理系統的商品名稱存儲在一個字符串數組中,現需要自定義一個雙向叠代器(MyIterator)實現對該商品名稱數組的雙向(向前和向後)遍歷。使用Iterato
[Python設計模式] 第6章 衣服搭配系統——裝飾模式
!= orb 定義 use bstr 單獨 name 代碼 服飾 題目 設計一個控制臺程序,可以給人搭配嘻哈風格(T恤,垮褲,運動鞋)或白領風格(西裝,領帶,皮鞋)的衣服並展示,類似QQ秀那樣的。 基礎版本 class Person(): def __in
[Python設計模式] 第18章 遊戲角色備份——備忘錄模式
狀態管理 撤銷操作 遊戲 .com cover 暫時 必須 https git github地址:https://github.com/cheesezh/python_design_patterns 題目 用代碼模擬以下場景,一個遊戲角色有生命力,攻擊力,防禦力等數據,在打
[Python設計模式] 第16章 上班,幹活,下班,加班——狀態模式
ngs 業務需求 當前時間 finished 過大 大量 封裝 hour abs github地址:https://github.com/cheesezh/python_design_patterns 題目 用代碼模擬一天的工作狀態,上午狀態好,中午想睡覺,下午漸恢復,加班
[Python設計模式] 第15章 如何兼容各種DB——抽象工廠模式
for from code trac 抽象接口 pass 工廠 https reat github地址:https://github.com/cheesezh/python_design_patterns 題目 如何讓一個程序,可以靈活替換數據庫? 基礎版本 class U
js設計模式第四章 工廠方法模式 讀書筆記
對於建立多類物件,簡單工廠就不太實用了。 通過工廠方法模式可以輕鬆的建立多個類的例項物件,而且建立物件的方式避免了使用者與物件類之間的耦合,使用者不必關心建立該物件的具體類,只需呼叫工廠方法即可。 安全的工廠方法模式 var Factory=function(type,con
時間觸發嵌入式系統設計模式 第19章 筆記 按鍵開關
時間觸發嵌入式系統設計模式 第19章 筆記 按鍵開關 E:\Nu_LB_Nuc140\Nu_LB_NUC140_BSP\SampleCode\Nu-LB-NUC140\Sched_LED_SWITCH\KEIL 程式碼: // // GPIO_LED : G
時間觸發嵌入式系統設計模式 第18章 筆記 通過RS-232與 PC通訊
時間觸發嵌入式系統設計模式 第18章 筆記 PC上 軟體 例子: 參考 : Axelson(1998) Serial Port Complete: Programming and Circuits for Rs-232 and Rs-485 Links and Netwo
時間觸發嵌入式系統設計模式 第22章 筆記 控制LCD顯示面板
時間觸發嵌入式系統設計模式 第22章 筆記 控制LCD顯示面板 E:\Nu_LB_Nuc140\Nu_LB_NUC140_BSP\SampleCode\Nu-LB-NUC140\Sched_22_LCD_Time E:\Nu_LB_Nuc140\Nu_LB_NUC140_B
時間觸發嵌入式系統設計模式 第21章 筆記 多路複用LED顯示
時間觸發嵌入式系統設計模式 第21章 筆記 多路複用LED顯示 1111 4個 8位的 數碼管 前兩個顯示小時,後兩個顯示分鐘,不顯示秒 程式碼: unsigned char LED_Table_G[20] = // 0 1 2 3
大話設計模式(C++)第二章-策略模式
策略模式:他定義了演算法家族,分別封裝起來,讓他們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的客戶。 三、優點與解析 (1)策略模式是一種定義一系列演算法的方法,從概念上來看,所有這些演算法完成的都是相同的工作,只是實現不同,他可以
大話設計模式(C++)第一章-簡單工廠模式
問題:寫一個簡單的計算器。 普通的寫法: #include<iostream> using namespace std; int main() { double NumberA,NumberB; cout<<"請輸入數字A: "; cin&
資料庫設計(第三章、物理設計)
Mysql常用儲存引擎 表及欄位命名原則 1.可讀性原則 2.表意性原則 3.長名原則 欄位型別的選擇原則 1.int 2.Datatime 3.char 4.varchar char和varchar如何選擇
js設計模式 第八章 單例模式
單例模式:又稱單體模式,是隻允許例項化一次的物件類。有時也用一個物件來規劃一個名稱空間,井井有條地管理物件上的屬性和方法 。 名稱空間的管理員 防止變數或方法重複 var ming={ g:function(id){ return document.getElem
js設計模式第七章 語言之魂——原型模式 讀書筆記
原型模式:用原型例項指向建立物件的類,使用於建立新的物件的類共享原型物件的屬性以及方法。 基於原型鏈實現物件之間的繼承,這種繼承是基於一種對方法或屬性的共享,而不是對方法和屬性的複製。 原型模式就是將可複用的、可共享的、耗時大的從基類中提出來然後放在其原型中,然後子類通過組合繼承或者寄生組合