原创 008.設計模式與範式:創建型--單例模式

單例模式一.單例模式(上):爲什麼說支持懶加載的雙重檢測不比餓漢式更優?1. 爲什麼要使用單例?2. 如何實現一個單例?3. 餓漢式4. 懶漢式5. 雙重檢測6. 靜態內部類7. 枚舉二.單例模式(中):爲什麼不推薦使用單例模式?

原创 007.設計原則與思想:總結

一.總結回顧面向對象、設計原則、編程規範、重構技巧等知識點 1. 面向對象 基於接口而非實現編程 應用這條原則,可以將接口和實現相分離,封裝不穩定的實現,暴露穩定的接口。上游系統面向接口而非實現編程,不依賴不穩定的實現細節,

原创 010.設計模式與範式:創建型--建造者模式

建造者模式六.建造者模式:詳解構造函數、set方法、建造者模式三種對象創建方式1. 爲什麼需要建造者模式?2. 與工廠模式有何區別?3. 使用場景,避免過度使用 六.建造者模式:詳解構造函數、set方法、建造者模式三種對象創建方式

原创 009.設計模式與範式:創建型--工廠模式

工廠模式四.工廠模式(上):爲什麼說沒事不要隨便用工廠模式創建對象?1. 簡單工廠2. 工廠方法3. 什麼時候該用工廠方法模式,而非簡單工廠模式呢4. 抽象工廠5.總結五.工廠模式(下):如何設計實現一個Dependency In

原创 005.設計原則與思想:面向對象

面向對象一.業務開發常用的基於貧血模型的MVC架構違背OOP嗎?1.什麼是基於貧血模型的傳統開發模式?2.什麼是基於充血模型的 DDD 開發模式?3.什麼項目應該考慮使用基於充血模型的 DDD 開發模式?二.如何利用基於充血模型的

原创 006.設計原則與思想:規範與重構

規範與重構一.理論一:什麼情況下要重構?到底重構什麼?又該如何重構?1. 重構的目的:爲什麼要重構(why)?2. 重構的對象:到底重構什麼(what)?3. 重構的時機:什麼時候重構(when)?4. 重構的方法:又該如何重構(

原创 004.設計原則與思想:設計原則

設計原則一.理論一:對於單一職責原則,如何判定某個類的職責是否夠“單一”?1. 如何理解單一職責原則(SRP)?二. 如何做到“對擴展開放、修改關閉”?擴展和修改各指什麼?三. 裏式替換(LSP)跟多態有何區別?哪些代碼違背了LS

原创 1. 面向對象

一.封裝、抽象、繼承、多態分別可以解決哪些編程問題? 封裝 封裝也叫作信息隱藏或者數據訪問保護。類通過暴露有限的訪問接口,授權外部僅能通過類提供的方式(或者叫函數)來訪問內部信息或者數據 抽象 封裝主要講的是如何隱藏信息、保

原创 002.持久層框架設計實現及MyBatis源碼分析-----自定義持久層框架

一.JDBC問題分析 JDBC使用 /** * JDBC連接 * @param args */ public static void main(String[] args) {

原创 2.設計原則與思想:面向對象

一.業務開發常用的基於貧血模型的MVC架構違背OOP嗎? 1.什麼是基於貧血模型的傳統開發模式? 像 UserBo 這樣,只包含數據,不包含業務邏輯的類,就叫作貧血模型(Anemic Domain Model)。同理,UserE

原创 前端--ES6入門

前言:臨時接手前端小程序,需補充下ES6用法 一.let 與 const let 聲明的變量只在 let 命令所在的代碼塊內有效。 const 聲明一個只讀的常量,一旦聲明,常量的值就不能改變。 for 循環計數器很適合用 le

原创 Redis API的理解和使用

一.通用命令 key key + 類通配符 key命令一般不在生產環境使用,key多慢。 dbsize dbsize 時間複雜度爲O1級別,可以在生產環境中使用 exists exists 時間複雜

原创 《編程思想》11.泛型

1 . 泛型的主要目的之一就是用來指定容器要持有什麼類型的對象。 2 . 簡單泛型 (1)有許多原因促成了泛型的出現,而最引人注目的一個原因就是爲了創造容器類。 public class Holder3<T> { privat

原创 《編程思想》10.持有對象

.java文件通常被稱爲編譯單元,每個編譯單元只能有一個public類,否則編譯器就不會接受。 類中域爲基本類型時自動被初始化爲零,但是對象引用會被初始化爲null Java用super關鍵字表示超類的意思,表達式supe

原创 《編程思想》9.內部類

一.創建內部類 (1)內部類瞭解外圍類,並能與之通信 (2)創建內部類方式:把類的定義置於外圍類的裏面 public class Parcel1 { //內部類1 class Contents{ private int i