设计模式的概念和分类
設計模式(Design Patterns)
????????????????????????????????? ——可復用面向對象軟件的基礎
設計模式(Design pattern)是一套被反復使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。 毫無疑問,設計模式于己于他人于系統都是多贏的,設計模式使代碼編制真正工程化,設計模式是軟件工程的基石,如同大廈的一塊塊磚石一樣。項目中合理的運用設計模式可以完美的解決很多問題,每種模式在現在中都有相應的原理來與之對應,每一個模式描述了一個在我們周圍不斷重復發生的問題,以及該問題的核心解決方案,這也是它能被廣泛應用的原因。
設計模式的分類
總體來說設計模式分為三大類:
創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。
其實還有兩類:并發型模式和線程池模式。用一個圖片來整體描述一下:
并發型模式有:
主動對象模式(Active Object)。
阻礙模式(Balking)。
雙重檢查鎖定(Double Checked Locking)。
守衛模式(Guarded)。
領導者/追隨者模式(Leaders/Followers)。
監測對象模式(Monitor object)。
讀寫鎖模式(Read write lock)。
調度模式(Scheduler)。
線程池:
? ?Worker Thread,也稱為工人線程或背景線程,不過一般都稱為線程池。該模式主要在于,事先啟動一定數目的工作線程。當沒有請求工作的時候,所有的工人線程都會等待新的請求過來,一旦有工作到達,就馬上從線程池中喚醒某個線程來執行任務,執行完畢后繼續在線程池中等待任務池的工作請求的到達。
? ?任務池:主要是存儲接受請求的集合,利用它可以緩沖接受到的請求,可以設置大小來表示同時能夠接受最大請求數目。這個任務池主要是供線程池來訪問。
? ?線程池:這個是工作線程所在的集合,可以通過設置它的大小來提供并發處理的工作量。對于線程池的大小,可以事先生成一定數目的線程,根據實際情況來動態增加或者減少線程數目。線程池的大小不是越大越好,線程的切換也會耗時的。
? ?存放池的數據結構,可以用數組也可以利用集合,在集合類中一般使用Vector,這個是線程安全的。
? Worker Thread的所有參與者:
? ?1,Client參與者,發送Request的參與者
? ?2,Channel參與者,負責緩存Request的請求,初始化啟動線程,分配工作線程
? ?3,Worker參與者,具體執行Request的工作線程
? ?4,Request參與者
J2EE 模式
這些設計模式特別關注表示層。這些模式是由 Sun Java Center 鑒定的。
- MVC 模式(MVC Pattern)
- 業務代表模式(Business Delegate Pattern)
- 組合實體模式(Composite Entity Pattern)
- 數據訪問對象模式(Data Access Object Pattern)
- 前端控制器模式(Front Controller Pattern)
- 攔截過濾器模式(Intercepting Filter Pattern)
- 服務定位器模式(Service Locator Pattern)
- 傳輸對象模式(Transfer Object Pattern)
總結
以上是生活随笔為你收集整理的设计模式的概念和分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: elasticsearch api中的d
- 下一篇: Scala入门到精通——第二十七节 Sc