設(shè)計模式的簡介
設(shè)計模式(Design pattern)代表了最佳的實踐纠修,通常被有經(jīng)驗的面向?qū)ο蟮能浖_發(fā)人員所采用酥泞。設(shè)計模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案献雅。這些解決方案是眾多軟件開發(fā)人員經(jīng)過相當(dāng)長的一段時間的試驗和錯誤總結(jié)出來的着倾。
設(shè)計模式是一套被反復(fù)使用的、多數(shù)人知曉的缘屹、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗的總結(jié)噪猾。使用設(shè)計模式是為了重用代碼霉祸、讓代碼更容易被他人理解、保證代碼可靠性袱蜡。 毫無疑問丝蹭,設(shè)計模式于己于他人于系統(tǒng)都是多贏的,設(shè)計模式使代碼編制真正工程化戒劫,設(shè)計模式是軟件工程的基石,如同大廈的一塊塊磚石一樣婆廊。項目中合理地運用設(shè)計模式可以完美地解決很多問題迅细,每種模式在現(xiàn)實中都有相應(yīng)的原理來與之對應(yīng),每種模式都描述了一個在我們周圍不斷重復(fù)發(fā)生的問題淘邻,以及該問題的核心解決方案茵典,這也是設(shè)計模式能被廣泛應(yīng)用的原因。
設(shè)計模式的使用
設(shè)計模式在軟件開發(fā)中的兩個主要用途宾舅。
1.開發(fā)人員的共同平臺
設(shè)計模式提供了一個標(biāo)準(zhǔn)的術(shù)語系統(tǒng)统阿,且具體到特定的情景。例如筹我,單例設(shè)計模式意味著使用單個對象扶平,這樣所有熟悉單例設(shè)計模式的開發(fā)人員都能使用單個對象,并且可以通過這種方式告訴對方蔬蕊,程序使用的是單例模式结澄。
2.最佳的實踐
設(shè)計模式已經(jīng)經(jīng)歷了很長一段時間的發(fā)展,它們提供了軟件開發(fā)過程中面臨的一般問題的最佳解決方案岸夯。學(xué)習(xí)這些模式有助于經(jīng)驗不足的開發(fā)人員通過一種簡單快捷的方式來學(xué)習(xí)軟件設(shè)計麻献。
設(shè)計模式模式可以分為三大類:創(chuàng)建型模式(Creational Patterns)、結(jié)構(gòu)型模式(Structural Patterns)猜扮、行為型模式(Behavioral Patterns)
創(chuàng)建型模式
這些設(shè)計模式提供了一種在創(chuàng)建對象的同時隱藏創(chuàng)建邏輯的方式勉吻,而不是使用 new 運算符直接實例化對象。這使得程序在判斷針對某個給定實例需要創(chuàng)建哪些對象時更加靈活旅赢。
包括:工廠模式(Factory Pattern)
抽象工廠模式(Abstract Factory Pattern)
單例模式(Singleton Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)
結(jié)構(gòu)型模式
這些設(shè)計模式關(guān)注類和對象的組合齿桃。繼承的概念被用來組合接口和定義組合對象獲得新功能的方式。
包括:適配器模式(Adapter Pattern)
橋接模式(Bridge Pattern)
過濾器模式(Filter煮盼、Criteria Pattern)
組合模式(Composite Pattern)
裝飾器模式(Decorator Pattern)
外觀模式(Facade Pattern)
享元模式(Flyweight Pattern)
代理模式(Proxy Pattern)
行為型模式
這些設(shè)計模式特別關(guān)注對象之間的通信源譬。
包括:責(zé)任鏈模式(Chain of Responsibility Pattern)
命令模式(Command Pattern)
解釋器模式(Interpreter Pattern)
迭代器模式(Iterator Pattern)
中介者模式(Mediator Pattern)
備忘錄模式(Memento Pattern)
觀察者模式(Observer Pattern)
狀態(tài)模式(State Pattern)
空對象模式(Null Object Pattern)
策略模式(Strategy Pattern)
模板模式(Template Pattern)
訪問者模式(Visitor Pattern)