1) 單例模式
在它的核心結構中只包含一個被稱為單例類別的特殊類別。透過單例模式可以確保系統中一個類別只有一個實例而且該實例易於外界訪問,從而方便對實例個數的控制並節約系統資源。
應用場景:如果希望在系統中某個類別的物件只能存在一個,單例模式是最好的解決方案。
2) 工廠模式
工廠模式主要是為創建物件提供了介面。
應用場景如下:
a、 在編碼時無法預見需要建立哪一種類別的實例。
b、 系統不應依賴產品類別實例如何被創建、組合和表達的細節。
3) 策略模式
策略模式:定義了演算法族,分別封裝起來,讓它們之間可以互相替換。此模式讓演算法的變化獨立於使用演算法的客戶。
應用場景如下。
a、 一件事情,有很多方案可以實現。
b、我可以在任何時候,決定採用哪一種實作。
c.、未來可能增加更多的方案。
d、 策略模式讓方案的改變不會影響到使用方案的客戶。
舉例業務場景如下。
系統的操作都要有日誌記錄,通常會把日誌記錄在資料庫裡面,方便後續的管理,但是在記錄日誌到資料庫的時候,可能會發生錯誤,例如暫時連不上資料庫了,那就先記錄在文件裡面。日誌寫到資料庫與文件中是兩種演算法,但呼叫方不關心,只負責寫就是。
4) 觀察者模式
觀察者模式又被稱為發布/訂閱模式,定義了物件間一對多依賴,當一個物件改變狀態時,它的所有依賴者都會收到通知並自動更新。
應用場景如下:
a、對一個物件狀態的更新,需要其他物件同步更新,而且其他物件的數量動態可變。
b、物件只需要將自己的更新通知給其他物件而不需要知道其他物件的細節。
5) 迭代器模式
迭代器模式提供一個方法順序存取一個聚合物件中各個元素,而又不暴露該物件的內部表示。
應用場景如下:
當你需要存取一個聚集對象,而且不管這些物件是什麼都需要遍 歷的時候,就應該考慮用迭代器模式。其實stl容器就是很好的迭代器模式的例子。
6) 模板方法模式
模板方法模式定義一個操作中的演算法的骨架,將一些步驟延遲到子類別中,模板方法使得子類別可以不改變一個演算法的結構即可重定義該演算法的某些步驟。
應用場景如下:對於某些功能,在不同的物件身上展示不同的作用,但是功能的框架是一樣的。
以上是java開發中的設計模式有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!