原创 《java與模式》-10 原始模型模式

通過給出一個原型對象指明所要創建的對象的類型,然後複製這個對象創造出更多同類型的對象; java 本身支持原始模型模式,Object有一個clone(),可以複製對象,但是要複製的話就必須要實現一個標誌接口Cloneable接口

原创 《java與模式》-6 代碼中應該遵守的原則

里氏替換原則 凡基類適用的地方,子類一定適用。子類可以直接替換基類。 依賴倒轉原則 要依賴於抽象不要依賴於具體。 要針對接口編程 依賴倒轉雖然強大,卻不容易實現。而且維護這樣的系統需要很好的面向對象的設計知識; 並且並不是所

原创 《java與模式》-5 抽象類

抽象類同時又抽象方法和具體方法; 抽象類是用來繼承的 抽象類是用來繼承的,在一個以繼承關係形成的等級結構裏,樹葉節點應當是具體類,樹枝節點應當是抽象類(或接口),只要有可能不要從具體類繼承; 代碼重構的建議,若A類繼承B類,應當

原创 《java與模式》-3 設計原則

開閉原則 1.一個軟件實體應該對擴展開放,對修改關閉 設計的時候應當使這個模塊可以在不被修改的前提下被擴展。 對面向對象來說是,不允許修改系統的抽象層,而允許擴展的是系統的實現層。 就是不修改規則只修改實現 2.解決問題的關鍵

原创 《java與模式》-1 看圖

作爲一個初學者,我很佩服一些大牛對對象的理解,他們可以很輕易的在圖紙上畫出,對象以及對象之間的關係。這就是我要學習的。 UML Unified Modeling Language (UML)又稱統一建模語言或標準建模語言,是始於1

原创 spring web應用的異常處理

針對RESTful返回json的異常處理 @ControllerAdvice和@ExceptionHandler 字面理解 ControllerAdvice:控制增強 ExceptionHandler:異常處理程序 spr

原创 《java與模式》-11 適配器模式

適配器模式 適配器模式把一個類的接口變成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作; 適配器的角色有目標角色(Target)、源角色(Adaptee)、適配器角色(Adapter);

原创 《java與模式》-2 軟件的可維護性和可複用性

導致軟件可維護性低的真正原因有四個:過於僵硬,過於脆弱,複用率低,粘稠度高。 過於僵硬:很難在一個軟件系統里加入一個新的性能,哪怕是很小的都很難。 過於脆弱:對一個地方的修改,往往會導致看上去沒什麼關係的另一個地方發生故障。 複

原创 《java與模式》-8 單例模式 singleton

單例模式 多例模式可以有多個實例,多例類必須自己創建、管理自己的實例,並向外界提供自己的實例;單例模式確保一個類只有一個實例,而且自行實例化,並自行向整個系統提供這個實例; 資源管理一般都是單例的,1.資源管理器必須只有一個實例

原创 《java與模式》-7 工廠模式

簡單工廠模式:靜態工廠方法模式; 工廠方法模式:多態性工廠模式、虛擬構造子模式; 抽象工廠模式:工具箱模式; 簡單工廠模式 有工廠角色,抽象產品角色,具體產品角色。 工廠類根據傳入的參量,決定具體創建哪一類的實例。 當多抽

原创 《java與模式》-3 觀察者模式

簡介: 觀察者模式又叫:發佈-訂閱模式、模型-視圖模式、源-監聽模式或從屬模式。 定義了一種一對多的依賴關係,讓多個觀察者同時監聽同一個主題對象,這個主題對象在狀態上發生變化時,會通知所有的觀察者,使他們能夠自動更新自己 角色

原创 《java與模式》-4 java接口

接口是實現構建可插入性的關鍵 關聯的可插入性 A對象需要完成一個任務,需要知道B對象(屬性),A對B就是關聯。 如果關聯不是對類,而是對接口,那麼任何一個實現了這個接口的對象都可以,這樣我們只需要關心接口,不需要關心實現了。

原创 根據select結果批量insert或update

Insert into select 1.INSERT INTO SELECT語句 語句形式爲:Insert into Table2(field1,field2,…) select value1,value2,… from Tab

原创 《java與模式》-9 建造模式

建造模式可以將一個產品的內部表象與產品的生成過程分割開,從而使一個生成過程創建具有不同內部表象的對象; 角色 抽象建(builder)造者,具體建(concrete builder)造者,導演者(director)角色,產品(pr

原创 Java的批處理

創建表 CREATE TABLE PERSON ( PID NUMBER(10), NAME VARCHAR2(50), GENDER NUMBER(12) DEFAULT 1 ); 1、Java 批處理 1.1、批