原创 java-設計模式-模板方法

設計模式-模板方法 定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。 模板方法通過把不變的行爲搬到父類,去除子類中的重複代碼來提現他的優勢。

原创 java-設計模式-迭代器模式

設計模式-迭代器模式 提供一種方法順序訪問一個聚合對象中各個元素,而有不暴露該對象的內部表示 本質:控制訪問聚合對象的元素,透明訪問元素 這個模式其實我們很熟悉了,因爲java中就有迭代器,而且我們用的也很多。 先上個類

原创 java-設計模式-組合模式

設計模式-組合模式 將對象組合成樹形結構來表示 “部分-整體”的層次結構。 葉子節點 和 支節點,支節點可以有支節點和葉子結點,葉子結點則不能有。 例子: 文件 -> 文件夾1(文件夾11(文件1

原创 java-設計模式-命令模式

設計模式-命令模式 命令模式:將一個請求封裝爲一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或者記錄請求日誌,可撤銷的操作。 行爲的請求者 和 行爲的執行者 解耦   典型例子:服務員(調用者 invo

原创 java-設計模式-適配器模式

適配器模式是 將一個類的接口 轉換 成 客戶 需要的接口的一種模式。   來個類圖:   下面有個實例,我們中國的電壓是220V的,但是手機的電壓很多是12V的,那手機需要進行充電,怎麼辦呢?來個電源適配器。 中國電源類: /**

原创 java-設計模式-建造者模式

建造者模式 在用戶不知道對象的建造過程和細節的情況下就可以直接創建複雜的對象 建造者模式適合: 1:複雜對象 2:對象的構建有順序要求,要求先構建part1再構建part2等 先看類圖: 下面舉兩個例子,一個例子就是比較嚴格按照類圖來

原创 java-spring-AOP面向切面編程

Spring AOP是面向切面編程,切面有幾個重要概念: 切面:連接點、切點、通知所在的【類】就是切面 切點:連接點的集合 連接點:可以理解爲spring的方法 通知:切入切點的時機before、after等 業務   在spring-

原创 java-設計模式-原型模式-基於流的複製

原型模式 可以理解爲深複製對象,之前開發的時候自己經常用,但是不知道它還有這個名字。 簡答示例: 類中有一個 複製對象的方法。 /** * 訂單對象 */ public class OrderObject { privat

原创 java-設計模式-策略模式

策略模式 和 狀態模式有點像,但是比狀態模式稍微比較簡單。 狀態模式的狀態之間是可以互相轉換的,但是策略模式的策略之間是相互獨立的。   策略模式 是把每個策略(解決問題的方法)獨立成類,調用者只需要調用抽象策略,具體的實現策略以具體的情

原创 java-設計模式-裝飾者模式

設計模式-裝飾者模式 動態地給一個對象添加一些額外的職責。 組件 -> 具體組件 -> 裝飾者(組件) ->具體裝飾者 Component :定義了一個可以被動態添加功

原创 java-設計模式-單例-有限多例

java單例的實現有多種,這裏介紹簡單的幾種: 單例都是要求 構造方法私有化 1:內部類模式(推薦使用) 特點:能實現懶加載、是線程安全的,不用鎖實現 /** * 內部類實現單例 * 0:只初始化一個 * 1:懶加載 * 2:線

原创 SpringBoot+redis+RedisUtil工具類

Spring Boot使用redis 1:pom加入redis包 <dependency> <groupId>org.springframework.boot</groupId> <art

原创 設計模式-觀察者模式 java自帶

觀察者模式-發佈訂閱模式 一種一對多的依賴關係,讓多個觀察者對象同時監聽某一主題對象 當主題對象發送變化時會通知所有觀察者 觀察者自動更新自己 java本身有自帶觀察者模式實現 java.util.Observable 被觀察者

原创 java多線程-線程間的通訊-門栓(減數器)

/** * 線程間的通訊 -門栓 或 門閘 或 減數器 * 使用方法很簡單 * new CountDownLatch(3);//聲明定義 多少個門栓,如果有3個,那個需要調用3次countDown()方法後,才能執行到await

原创 java NIO實現文件複製

傳統IO 面向字節 流(類比水流) NIO: new IO javaNIO核心在於 通道和緩衝區,先獲取通道,然後操作緩衝區,對數據進行處理 通道Channel(類比鐵路,僅僅用於連接,不能傳輸數據) 緩衝區Buffer(類比火車,