進位之間的轉換 1.1 電腦硬體的基本認知 cpu: 中央處理器. 相當於人的大腦.運算中心,控制中心. 記憶體: 臨時存儲數據. 優點:讀取速度快。 缺點:容量小,造價高,斷電即消失. 硬碟: 長期存儲數據. 優點:容量大,造價相對低,斷電不消失。 缺點:讀取速度慢. 操作系統:統一管理電腦軟硬 ...
1. 設計模式
1.1. 對設計經驗的歸納總結
1.2. 一種可重用的藍圖
1.3. Java 5引入了for-each迴圈
1.3.1. 替代了很多顯式使用迭代器的情形
1.4. Java 7推出的菱形操作符(<>)
1.4.1. 幫助大家在創建實例時無須顯式使用泛型
1.4.2. 推動了Java程式員們採用類型介面(type interface)進行程式設計
1.5. 單例模式
1.5.1. 一般用於限制類的實例化,僅生成一份對象
1.6. 訪問者模式
1.6.1. 常用於分離程式的演算法和它的操作對象
2. 策略模式
2.1. 解決一類演算法的通用解決方案,你可以在運行時選擇使用哪種方案
2.2. 一個代表某個演算法的介面(Strategy介面)
2.3. 一個或多個該介面的具體實現,它們代表了演算法的多種實現
2.4. 一個或多個使用策略對象的客戶
2.5. Lambda表達式避免了採用策略設計模式時僵化的模板代碼
3. 模板方法模式
3.1. 如果需要採用某個演算法的框架,同時又希望有一定的靈活度,能對它的某些部分進行改進
3.2. “希望使用這個演算法,但是需要對其中的某些行進行改進,才能達到希望的效果”時是非常有用的
3.3. 通過傳遞Lambda表達式,直接插入不同的行為,不再需要繼承
3.4. Lamba表達式能幫助解決設計模式與生俱來的設計僵化問題
4. 觀察者模式
4.1. 消除僵化代碼
4.1.1. 直接傳遞Lambda表達式表示需要執行的行為即可
4.2. 某些事件發生時(比如狀態轉變),如果一個對象(通常稱之為主題)需要自動地通知其他多個對象(稱為觀察者)
5. 責任鏈模式
5.1. 通過定義一個代表處理對象的抽象類來實現的,在抽象類中會定義一個欄位來記錄後續對象
5.2. UnaryOperator的一個實例
5.2.1. 為了鏈接這些函數,需要使用andThen方法對其進行構造
6. 工廠模式
6.1. 無須向客戶暴露實例化的邏輯就能完成對象的創建
6.2. 特殊的函數介面TriFunction
public interface TriFunction<T, U, V, R>{
R apply(T t, U u, V v);
}
Map<String, TriFunction<Integer, Integer, String, Product>> map
= new HashMap<>();