原创 架構整潔之道  ——Robert C. Martin

1. 綜述 爲什麼要進行架構設計:  採用好的架構可以大大節省軟件項目構建與維護的人力成本。每次變更都短小簡單,易於實施,並且避免缺陷,用最小的成本,最大程度的滿足功能性的需求。在軟件的全生命週期內,最大化程序員的生產力,同時最小化系統的

原创 《重構--改善既有代碼的設計》 --MartinFowler

《重構--改善既有代碼的設計》 --Martin Fowler 重構定義: 在不改變軟件可觀察行爲的前提下,對軟件內部進行調整(使用重構手法),以提高其可理解性,降低其修改成本。 -- 重點在兩點: 1. 不改變軟件的可觀察行爲。2.

原创 Zookeeper客戶端學習

package com.test.com.test.zookeeper; import org.apache.zookeeper.AsyncCallback; import org.apache.zookeeper.CreateMod

原创 單元測試框架TestNG、Mockito、Unitils-Spring及示例

一. TestNG 對Junit的擴展可通過xml腳本同時運行多個case TestNG運行時將經過一下幾個階段: 1. 類級初始化資源處理 @BeforeClass註解標記 2. 方法級別初始化資源處理 @Bef

原创 Effective Java精髓

Effective Java  第一章:創建和銷燬對象 1. 使用靜態工廠方法 ——優點:1. 可以提供多種方式的方法簽名。                   2. 不必每次都返回一個新的實例。                    3

原创 logback、log4j、log4j2三種日誌框架性能檢測——爲什麼用log4j2。

注意:此博客爲轉載 https://blog.csdn.net/yjh1271845364/article/details/70888262 作爲記錄 日誌已經成爲系統開發中不可或缺的一部分. 但是針對logback, log4j和log

原创 策略模式

一、定義:定義一組算法,將每個算法都分裝起來,並且使它們之間可以互換。Define a family of algorithms, encapsulate each one, and make them interchangeable.

原创 圖的深度搜索和回溯

    題:輸入如下所示 每一個“ . ” 都是可以通行的,而每一個“ # ”表示不能通行,現在要從左下角走遍所有位置,走到右下角。請問有多少種走法 輸入: 有多組數據 以0 0表示結束. 第一行表示有n行,m列。接下來n行,m列輸入圖的

原创 設計模式之備忘錄模式

一、定義:在不破壞封裝性的前提下,捕獲對象的內部狀態,並在該對象之外保存這個狀態。這樣就可以恢復到原先保存的狀態。 Without violating encapsulation,capture and externalize an ob

原创 一個Lua腳本操作Redis的簡單例子

本例子的lua腳本實現 遍歷 Redis中指定模式的鍵,然後替換每個鍵中與模式匹配的值,使之變爲指定的值。 Redis中的鍵如下所示: 127.0.0.1:6379> keys * 1) "string.tmd.2" 2) "test"

原创 用java實現一顆平衡二叉樹ADT

平衡二叉樹是一顆能夠確保能在O(lgn)漸進時間界進行查找的樹。我編寫一個類來對平衡二叉樹進行操作,包括,添加元素,刪除元素,查找元素等操作。我建議:對於數據結構,如果都能夠自己編寫一遍,不僅能夠摸清其中的奧妙,而且可以快速入手其他結構。

原创 用java實現各種排序算法

package Com.Sort; /** * 各種高級排序方法的實現 * * @author Jane */ public class AdvanceSort { // 打印數組 public static <T e

原创 設計模式之裝飾模式

一、定義:動態的給一個對象添加一些額外的職責。就增加功能來說,裝飾模式相比生成子類更爲靈活。Attach additional responsibilites to an object dynamically keeping the sa

原创 設計模式之責任鏈模式

一、定義:責任鏈模式使第一個對象處理請求,然後一次向下傳遞請求,直到有一個合適的對象能夠處理他,從而避免的調用者依次去詢問各個對象造成的多耦合關係。Avoid coupling the sender  of a request to it

原创 設計模式之命令模式

一、定義:將一個請求分裝成一個對象,從而讓你使用不同的請求吧客戶端參數化,對請求排隊 或者記錄請求日誌,可以提供命令的撤銷和恢復功能。Encapsulate a request as an object, thereby letting