原创 HeadFirst 設計模式學習筆記5--單例模式

1.單例模式確保一個實例被創建,並且任意時刻都只有一個對象。它給了我們一個全局的訪問點,又屏蔽了全局變量的缺點。可以被用來管理共享資源,比如數據庫連接或線程池。特徵是構造函數爲私有,然後聲明一個私有靜態成員作爲類對象,對外提供一個靜態類方

原创 設計模式基礎6--監視器

1)使用場景:一個對象可能要訪問共享資源來完成它所要提供的服務,在多線程情況下,多個這樣的對象在一起就會產生意想不到的後果,比如競爭。監視器就是在這樣的一個對象上設置一個鎖,以保證在給定時間內,只有一個線程可以執行這個對象上的任何一個方法

原创 HeadFirst 設計模式學習筆記4--工廠模式

1.我們在前邊提到一個原則就是“面向接口而不要面向實現編程”,但是我們一直在使用Duck duck = new MallardDuck()這樣的模式,後邊的new語句卻違反了這個原則。工廠方法就可以解決這個問題,它用來封裝對象的創建。 2

原创 HeadFirst 設計模式學習筆記1--策略模式

1.書中舉了一個鴨子類的設計,有些會飛或者會叫,有些不會飛可能也不會叫,用繼承則導致不該有的功能通過繼承而繼承了下來,使用接口則代碼無法做到最大程度的重用。進而引出設計原則1:找出應用中可能需要變化之處,把它們獨立出來,不要和那些不需要變

原创 追MM與Java的23種設計模式

'    1、FACTORY—追MM少不了請吃飯了,麥當勞的雞翅和肯德基的雞翅都是MM愛吃的東西,雖然口味有所不同,但不管你帶MM去麥當勞或肯德基,只管向服務員說“來四個雞翅”就行了。麥當勞和肯德基就是生產雞翅的Factory   工廠

原创 HeadFirst 設計模式學習筆記2--觀察者模式

1.我們需要理解報社、訂閱系統和訂報人之間的關係,訂報人通過訂閱系統訂報,一旦報社有新的報紙,訂閱系統就會派人送或者郵寄給訂報人新的報紙。然後,出版者+訂閱者就是觀察者模式,只不過名稱不一樣,主題(Subject,或者叫做Observab

原创 設計模式基礎4--常量數據管理器

a)使用場景:在程序設計中,我們可以把所用要用到的常量設計爲一個獨立的類,使得對常量的管理有效清晰。   b)應用舉例: 我們考慮一個顧客數據存儲的應用場景,要用到三種類,Account, Address 和 CreditCard來代表用

原创 設計模式基礎5--不變對象

1)使用場景:牽涉到對數據對象進行修改時,可能由於修改的順序而造成數據的錯亂,此時使用不變對象就可以避免,而且還可以不使用高開銷的synchronizing方法。一個數據模型類的實例所持有的數據在整個生命週期中都不變,這個類就會是線程安全

原创 抽象類

1.抽象類的特點: 包含至少一個以abstract表示的沒有實現的方法——抽象方法,來代表父類中的可變方法。 包含的有具體實現的方法來代表父類中的不可變的通用方法。 不能被實例化。 子類繼承時必須實現去所有抽象方法,否則子類也是一個抽象