【正文】
+ f e e d ( )C ow M e a t+ e n a b le E a t ( )+ f e e d ( )P ig M e a t+ e n a b le E a t ( )+ f e e d ( )B u y e r+ b u y F r u it ( )+ b u y M e a t ( )I+ b u y F r u it ( )+ b u y M e a t ( )Y ou+ b u y F r u it ( )+ b u y M e a t ( )Apple與 CowMeat是一個產(chǎn)品的兩個套件 幾個基本的設計模式 —— 工廠模式 ? Factory Method模式 ? 抽象工廠模式可以向客戶端提供一個接口,使得客戶端在不必指定產(chǎn)品的具體類型的情況下,創(chuàng)建多個產(chǎn)品族中的產(chǎn)品對象。 當客戶端應用不關心節(jié)點是否為葉節(jié)點還是枝節(jié)點時(即客戶端想對葉節(jié)點和枝節(jié)點一視同仁時),可以采用該種模式。對于增加新的水果類而言,這個系統(tǒng)完全支持“開 閉”原則。 幾個基本的設計模式 —— 工廠模式 ? Factory Method模式 F r u it+ e n a b le E a t ( )+ p la n t ( )A p p le+ e n a b le E a t ( )+ p la n t ( )P e a r+ e n a b le E a t ( )+ p la n t ( )G r a p e+ e n a b le E a t ( )+ p la n t ( )B u y F r u it+ B u y F r u it ( )C lie n tB u y A p p le+ B u y F r u it ( )B u y G r a p e+ B u y F r u it ( )B u y P e a r+ B u y F r u it ( )幾個基本的設計模式 —— 工廠模式 ? Factory Method模式 ? 工廠方法模式和簡單工廠模式在結構上的不同是很明顯的。 ? Abstract Factory模式 ? 提供一個共同的接口來創(chuàng)建相互關聯(lián)的多個對象。 DIP原則告訴我們:要對接口編程,不要對實現(xiàn)編程,只有這樣才能更好地實現(xiàn) OCP。餓漢式在類一實例化的時候就初始化了instance;懶漢式僅在調用時才初始化。 ? 對于這種情況,所需的類行為應該僅使用一個類實例來維護該整數(shù),而不是使用多個類實例來維護該整數(shù)。這樣,你就能一次又一次地使用該方案而不必做重復勞動 ” 。通過提供一個顯式類和對象作用關系以及它們之間潛在聯(lián)系的說明規(guī)范,設計模式甚至能夠提高已有系統(tǒng)的文檔管理和系統(tǒng)維護的有效性。有經(jīng)驗的面向對象設計者的確能做出良好的設計,而新手則面對眾多選擇無從下手,總是求助于以前使用過的非面向對象技術。唯有寫出人類容易理解的代碼,才是優(yōu)秀的程序員 ? 搬移 amountFor方法,變更函數(shù)名稱 ? 去掉臨時變量 thisAmount ? 對 frequentRenterPoints進行類似于 amountFor方法的處理 ? 去掉臨時變量 totalAmount和 frequentRenterPoints ? Movie的繼承與多態(tài) 影片出租店的程序 ? 我們從中體會到了什么? ? 我們?yōu)槭裁床荒芤婚_始就能設計出最后的程序? ? 因為我們沒有抓住面向對象設計中的一種規(guī)律 ? 設計模式就是前人為我們總結出的面向對象設計的一種規(guī)律,我們所要做的就是吸收消化,并加以運用 設計模式 出場啦 設計模式基礎 —— 什么是設計模式 ? 模