軟件設(shè)計(jì)模式是一種被反復(fù)使用的、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性、程序的重用性。設(shè)計(jì)模式提供了一套通用的設(shè)計(jì)詞匯和一種通用的語言以方便開發(fā)人員之間溝通和交流,使得設(shè)計(jì)方案更加通俗易懂。對(duì)于使用不同編程語言的開發(fā)和設(shè)計(jì)人員可以通過設(shè)計(jì)模式來交流系統(tǒng)設(shè)計(jì)方案,每一個(gè)模式都對(duì)應(yīng)一個(gè)標(biāo)準(zhǔn)的解決方案,設(shè)計(jì)模式可以降低開發(fā)人員理解系統(tǒng)的復(fù)雜度。
軟件設(shè)計(jì)模式有六大原則,包括開閉原則(對(duì)擴(kuò)展開放,對(duì)修改封閉)、里氏代換原則(任何基類可以出現(xiàn)的地方,子類一定可以出現(xiàn))、依賴倒轉(zhuǎn)原則(針對(duì)接口編程,依賴于抽象而不依賴于具體)、接口隔離原則(使用多個(gè)隔離的接口,比使用單個(gè)接口要好)、迪米特法則(一個(gè)實(shí)體應(yīng)當(dāng)盡量少地與其他實(shí)體之間發(fā)生相互作用)、合成復(fù)用原則(盡量使用合成/聚合的方式,而不是使用繼承)。
設(shè)計(jì)模式可以分為三大類:創(chuàng)建型模式主要用于創(chuàng)建對(duì)象;結(jié)構(gòu)型模式主要用于處理類或?qū)ο蟮慕M合;行為型模式主要用于描述對(duì)類或?qū)ο笤鯓咏换ズ驮鯓臃峙渎氊?zé)。