單一責任(srp),就是乙個類而言,應該僅有乙個引起它變化的原因。(
不知道是不是有機會用qt 作乙個俄羅斯方塊的遊戲)邏輯和介面分離是乙個很重要的原則。
如果乙個類承擔的責任過多,就等於把這些責任耦合在乙個,乙個指責的變化可能會削弱或者抑制這個類完成其他責任的能力,這種耦合會導致脆弱的設計,當變化發生時,設計會遭到意想不到的破壞。適當的使用對映?抽象?來減少對於介面的依賴。
軟體設計真正要作的許多內容,就是發現指責並把那些指責相互分離,其實要去判斷是否分離類也不難,如果你能夠想到多於乙個動機去改變乙個類,那麼這個類就具有多餘乙個的指責。
開放封閉原則:就是說軟體實體(類,模組,函式等等),應該是可以擴充套件的,但是不可以修改。
open for extension, and closed for modification。
怎樣的設計才能面對需求的改變卻可以保持相對的穩定,從而使得系統可以在第乙個版本以後不斷的推出新的版本。
無論模組是多麼的封閉,都存在一些無法對之封閉的變化,既然不可能完全的封閉,實際人員必須對於他設計的模組應該對哪種變化封閉做選擇。他必須猜測出最可能發生的變化種類,然後構造抽象來隔離變化。
面對需求,對於程式的改動是通過增加新的**進行的,而不是修改現有的**。
開放封閉原則是物件導向的核心。開發人員應該對於程式中呈現的頻繁的變化那部分做出抽象,然而,對於應用程式中的每個部分可以的進行抽象同樣不是乙個好主意。
拒絕不成熟的抽象和抽象本身一樣的重要。
讀書 系統之美 第三章 第四章
適應力是指系統在多變的環境中保持自身存在和運作的能力。與適應力相對的是脆弱性或剛性。系統之所以會有適應力,是因為系統內部結構存在很多相互影響的反饋迴路,正是這些迴路相互支撐,即使在系統遭受巨大的擾動時,仍然能夠以多種不同的方式使系統恢復至原有狀態。適應力總是有限度的。有適應力的系統可能是經常動態變化...
ps第三章及第四章第一節
3.2色階 色階命令通過調整影象的陰影,中間調和高光的強度級別,從而校正影象的明暗 和色彩 曲線 曲線命令可以調整影象的整個色調範圍內的點,也即可以將任何輸入 原圖 變換為任意的輸出 調整修改結果 可以在色戒或曲線中選擇任意乙個單獨的通道進行調整。注意 如果需要調整多個通道的色階或曲線,需要先在通道...
第三章和第四章隨堂測驗考試
6 1 另類迴圈佇列 20 分 如果用乙個迴圈陣列表示佇列,並且只設佇列頭指標front,不設尾指標rear,而是另設count記錄佇列中元素個數。請編寫演算法實現佇列的入隊和出隊操作。函式介面定義 bool addq queue q,elementtype x elementtype delete...