原创 觀察者模式/發佈訂閱模式(Observer)

1. 觀察者模式 1.1 定義 觀察者模式定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態發生變化時,會通知所有觀察者對象,是它們能夠自動更新自己。(引自《大話設計模式》) 1.2 解釋 觀察者模式,

原创 建造者模式/生成器模式(Builder)

1. 引入建造者模式 這裏改變了一下思路,先舉一個例子,再總結得出建造者模式的基本結構。 建造者,顧名思義,建造產品的人,什麼產品呢?假設現在建造一個小人。一個小人,要有頭、有身子、有手、有腳。 首先來個人,有屬性:頭、身子、手、腳。

原创 外觀模式(Facade)

1. 外觀模式 1.1 概述        外觀模式比較簡單,是應用比較廣泛的一種設計模式。        舉個栗子說明一下,比如說,現在我在家炒菜,我需要準備菜、調料、油等,然後再下鍋炒,最後完成。但是,如果我們去飯店吃,只需要跟服務員

原创 模板方法模式(TemplateMethod)

1. 模板方法模式 1.1 定義 模板方法模式,定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結構即可重新定義該算法的某些特定步驟。(引自《大話設計模式》) 1.2 基本結構圖 1.3 模式理

原创 原型模式(Prototype)—— 淺拷貝和深拷貝

1. 原型模式 1.1 定義 原型模式,用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。(引自《大話設計模式》) 1.2 使用場景 這裏舉例說明一下。比如說現在我要複製一本書。首先,我定義了這本書的相關屬性,有書名、價格、

原创 策略模式(Strategy)

1. 策略模式 策略模式,它定義了算法家族,分別封裝起來,讓它們之間可以互相替換,此模式讓算法的變化,不會影響到使用算法的客戶。(引自《大話設計模式》) 如果一個項目中,需要用到大量的算法就可以考慮使用策略模式。 舉例說明:商場收銀軟件,

原创 裝飾器模式(Decorator)

1. 簡單介紹裝飾器模式 裝飾模式,動態地給一個對象添加一些額外的職責,就增加功能來說,裝飾模式比生成子類更爲靈活。(引自《大話設計模式》) 裝飾器模式的結構圖如下: 逐一介紹一下 Component:對象接口,也可以是一個抽象類,是被

原创 工廠模式-簡單工廠模式、工廠方法模式、抽象工廠模式

  1. 簡單工廠模式   舉例說明:實現一個計算器的功能 先上類圖,如下:        首先是一個運算類(Operation),它主要包含一個方法(getResult()),用於計算所得結果,然後加減乘除分別繼承它,這樣便於擴展,如

原创 抽象工廠模式的改進

抽象工廠模式在我的上一篇博文裏已經詳細介紹過,地址:https://blog.csdn.net/zaoan_2010/article/details/81987011 它的缺點主要體現在,需要新增產品時,做的改動比較多。針對這個缺點對抽象

原创 maven中使用junit提示找不到junit包

在maven項目中,在src/test/java下建立JUnit Test Case測試類,在方法上面加入@Test註釋提示找不到junit包import org.junit.Test; import