本篇是概念篇,無**
小菜買了個新手機,向大鳥炫耀他的手機有諸多功能,比如聽歌,拍照,玩戲,聽**等,但是大鳥不以為然,認為手機只需要打**就夠了,沒必要花裡胡哨
小菜看到乙個ufo,用新手機拍了下來,然而放上電腦只看到乙個白點,苦笑道"沒用的東西"
小菜的手機雖然整合了很多功能,卻不精通,拍照顯然不如相機,就相機而言,只有乙個拍照功能,而且做到幾乎完美,在程式設計的角度,這有點類似於乙個單一職責的類,我們需要追求的是單一職責的類
就乙個類而言,應該僅有乙個引起它變化的原因[單一職責原則(srp)]
如果類裡塞進了很多東西,無論任何需求,都要改定同乙個類,復用不可能,也缺乏靈活性
如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責的能力.這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意想不到的破壞
軟體設計真正要做的許多內容,就是發現職責並把職責相互分離
如果你能夠想到多於乙個的動機去改變乙個類,那麼這個類就具有多於乙個的職責,如果這個類多於乙個職責,就有必要分離
大話設計模式 第三章 單一職責原則
定義 就乙個類而言 應該僅有乙個引起它變化的原因 我們在程式設計時,很自然地會給乙個類加各種各樣的功能,比如我們寫乙個窗體應用程式,會在其中加入某種商業運算的演算法,比如資料庫訪問等,維護麻煩,復用不可能,也缺乏靈活性 舉例 方塊遊戲的設計 3.5 以俄羅斯方塊為例 下落 旋轉 碰撞判斷 移動 堆積...
設計模式 第三章 工廠模式
二 工廠方法模式 三 抽象工廠模式 工廠模式為建立者模式的一種,就是建立物件時不會暴露建立 邏輯,提供統一入口來指向新建立的物件。工廠模式三種方法 1.簡單工廠模式 2.工廠方法模式 3.抽象工廠模式指定乙個引數由乙個工廠物件決定建立出不同的類。基類動物 public inte ce animal ...
js模式第三章
迴圈物件為dom時,儲存dom物件的長度可以提高瀏覽器效能 現在還是的嘛?目前,我所說知道的兩種建立物件的方法,物件字面量和new object。其中,物件字面量方法更簡單明瞭,另乙個原因是它只是強調了該物件僅是乙個可變雜湊對映,而不是從物件中提取屬性和方法。與new object相比,物件字面量沒...