原创 設計模式-02抽象工廠設計模式

/** * 一個工廠模式的抽象層(接口) */ public abstract class AbsFactory { @Nullable abstract Pizza createPizza(String or

原创 設計模式-02工廠方法設計模式

場景: 用戶需要下單美國披薩,中國披薩, 前一個簡單工廠模式就不是能很好的滿足現在的需求了。 工廠方法模式: 定義一個創建對象的抽象方法,在子類決定需要實例化的類。工廠方法模式將對象的實例化推遲到子類中。 Pizza頂級父類

原创 設計模式-02簡單工廠設計模式

先由簡單工廠,引出一系列問題,從而優化。 簡單工廠模式屬於創建型模式,是工廠模式的一種,簡單工廠模式是由一個工廠對象決定創造出哪一種產品類的實例。簡單工廠模式是工廠模式家族中最簡單實用的模式 簡單工廠模式: 定義了一個創建對象的

原创 設計模式-七大原則-開閉原則

開閉原則 基本介紹 開閉原則,是編程中最基礎、最重要的設計原則。 一個軟件實體如類,模塊和函數應對外擴展開放(對提供方),對修改關閉(對使用方)。用抽象構建框架,用實現擴展細節。 當軟件需要變化時,儘量通過擴展軟件實體的行爲來實現

原创 設計模式-七大原則-合成複用原則

合成複用原則 基本介紹 原則儘量使用合成/聚合的方式,而不是使用繼承。 問題舉例 public class Composite { } class A{ public void operation1(){

原创 設計模式-01單例設計模式

01單例設計模式 基本介紹 所謂類的單例設計模式,就是採取一定的方法保證在整個軟件系統中,對某個類只能存在一個對象實例, 並且該類只提供一個取得其對象實例的方法(靜態方法)。 比如Hibernate中的SessionFactor

原创 設計模式-七大原則-迪米特法則

迪米特法則 基本介紹 一個對象應對其他對象保持最少的瞭解。 類與類關係越密切,耦合度越大。 迪米特法則又叫最少知道原則,即一個類對自己依賴的類知道的越少越好。也就是說,對於被依賴的不管多麼複雜,都儘量將邏輯封裝在類的內部。對外除了

原创 設計模式-七大原則-接口隔離原則

接口隔離原則 基本介紹 客戶端不應該依賴它不需要的接口,即一個類對另一個類的依賴應該建立在最小的接口上。 接口Interface1中有5個方法, 類A需要通過接口Interface1去掉用B類的第1,2,3個方法, 類C需要通過接

原创 設計模式-七大原則-依賴倒轉原則

依賴倒轉原則 基本介紹 高層模塊不應該依賴底層模塊,二者都應該依賴其抽象。 抽象不應該依賴細節,細節應該依賴抽象。 依賴倒轉(倒置)的中心思想是面向接口編程。 依賴倒轉原則是基於這樣的的設計理念: 相對於細節的多變性,抽像的東西

原创 設計模式-七大原則-里氏替換原則

里氏替換原則 基本介紹 繼承包含這樣一層含義: 父類中凡是已經實現好的方法,實際上是在設定規範和契約, 雖然它不強制要求所有的子類必須遵循這些契約,但是如果子類對這些已經實現的方 法任意修改,就會對整個繼承體系造成破壞。 繼承在

原创 設計模式-七大原則-單一職責原則

單一職責原則 基本介紹 對類來說,即一個類應該只負責一項職責。如A類負責兩個不同的職責: 職責1,職責2。 當職責1需求變更而改變A的代碼時,可能造成職責2執行錯誤,所以需要將A的粒度分解爲A1,A2。 例如UserDao只負責

原创 MySQL8.0使用performance_schema分析一條SQL的具體執行時間

MySQL8.0使用performance_schema分析一條SQL的具體執行時間 新版的MySQL已經徹底移除了以前ProFile的大多數功能 第一步 SELECT * FROM performance_schema.setu