原创 工廠方法模式

意圖:定義一個用於創建對象的接口,讓子類決定實例化哪一個類。Factory Method 使一個類的實例化延遲到其子類。 結構: 實例:下面我們以Pizza店的例子來談談“工廠方法模式”的來龍去脈,我們學習的思路是“原始設計-->簡單工

原创 策略模式

先對策略模式有一個總體認識。 意圖:定義一系列的算法,把它們一個個封裝起來, 並且使它們可相互替換。本模式使得算法可獨立於使用它的客戶而變化。 結構: 下面通過鴨子模擬器的設計來具體介紹。 公司需要設計一套鴨子模擬器系統,該系統的第一次

原创 裝飾者模式

意圖:動態地將責任附加到對象上。若要擴展功能,裝飾者提供了比繼承更有彈性的替代方案。 結構: 例子: 下面我們以星巴茲(Starbuzz)的訂單系統爲例加以說明。 需求分析: 1)、星巴茲的飲料(Beverage)種類繁多,主要有Hou

原创 命令模式

背景:有時候我們需要對方法進行封裝,通過對這些封裝的方法進行調用,我們可以很好的處理一些事情。比如,記錄日誌,或者重複使用這些封裝實現撤銷功能。 意圖:將一個請求封裝爲一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或記錄請求

原创 設計模式原則

最近重新回顧了下設計模式,這裏歸檔總結下,方便以後可以看看。 設計模式總共有以下幾個原則: 1、封裝變化。        找出應用中可能需要變化之處,把他們獨立出來,不要和那些不需要變化的代碼混在一起。 2、針對接口編程,而不是針對實現編

原创 單件模式

背景:有一些對象其實我們只需要一個,比方說:線程池(threadpool)、緩存(cache)、對話框、處理偏好設置和註冊表(registry)的對象、日誌對象,充當打印機、顯卡等設備的驅動程序的對象。事實上,這類對象只能有一個實例,如果

原创 適配器模式

軟件開發中經常遇到的問題:假設已有一個軟件系統,你希望它能和一個新的廠商類庫搭配使用,但是這個新廠商所設計出來的接口,不同於舊廠商的接口。如果你不想改變現有的代碼,也不能改變廠商的代碼,那麼你該如何解決這個問題。方法其實很簡單,就是寫一個

原创 觀察者模式

意圖:定義對象間的一種一對多的依賴關係,當一個對象的狀態發生改變時, 所有依賴於它的對象都得到通知並被自動更新。 結構: 例子: 下面以模擬氣象站系統來加以說明。 需求分析: 該系統的需求如下: 1、氣象站能夠追蹤目前的天氣狀況,包括溫

原创 使用Maven創建web項目(tomcat熱部署)

使用Eclipse構建Maven的SpringMVC項目 1. 建立Maven項目 創建後,添加src/main/webapp,如下: 2. 配置Maven項目 2.1 更改配置 右鍵項目,Java Build

原创 日誌傳輸工具-Flume實現原理及應用

1. 簡介       Flume是Cloudera提供的一個分佈式、可信任且彈性的系統,用於高效收集、匯聚和移動大規模日誌信息從多種不同的數據源到一個集中的數據存儲中心。所以可以把Flume當作一個高可用的、高可靠的、分佈式的海量日誌採

原创 MySQL技術內幕--存儲引擎

    今日突然對於數據結構和索引感興趣,所以研究了下mysql數據庫,     參考書籍:MySql技術內幕--InnoDB存儲引擎(Insinde Mysql:InnoDB Storage Engine)     參考文章:MySQL

原创 WebService初識

   Webservice是一個web服務體系,它爲其他應用程序提供數據與服務,各應用程序通過網絡協議和規定的一些標準數據格式來訪問webservice。    webservice三種最普遍的實現方式是: 遠程過程調用(RPC) --

原创 eclipse項目打包,bat運行

       Eclipse打包成jar,並用bat運行          以前用eclipse打包的時候,都是創建manifest文件,修改的時候比較麻煩,最近學到了一個比較好的方法,通過bat來運行,jar包升級的時候只要在外面替換就

原创 探索--雲計算是什麼

1. 雲計算是什麼 在我看來雲計算就像如今的發電廠一樣,向用戶提供各種服務。我們都知道,我們用電、用水都是按使用量進行付款的,雲計算也是這樣,它可以按需向用戶提供服務,收取一定得費用。 從這裏可以看出,與計算擁有兩大特點: 1. 提高用戶

原创 java reflect小記

以前都不知道反射到底有什麼用處,最近查看下資料,發現反射在底層和框架中用的比較多,JAVA的反射是指,可以通過一個類名來探察這個類裏面的信息,比如說類的屬性名,屬性名的修飾符,方法名,方法返回值,方法修飾符等等,反正除了方法體得不到,其他