1.你所知道的設(shè)計(jì)模式有哪些
Java 中一般認(rèn)為有 23 種設(shè)計(jì)模式,我們不需要所有的都會(huì),但是其中常用的幾種設(shè)計(jì)模式應(yīng)該去掌握。下面列
出了所有的設(shè)計(jì)模式。需要掌握的設(shè)計(jì)模式我單獨(dú)列出來(lái)了,當(dāng)然能掌握的越多越好。
總體來(lái)說(shuō)設(shè)計(jì)模式分為三大類:
創(chuàng)建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結(jié)構(gòu)型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責(zé)任鏈模式、命令模式、備忘錄模
式、狀態(tài)模式、訪問(wèn)者模式、中介者模式、解釋器模式。
2.設(shè)計(jì)模式常用的六大原則:
(1)單一職責(zé)原則:一個(gè)類應(yīng)該只負(fù)責(zé)一項(xiàng)職責(zé)
(2)接口隔離原則:一個(gè)類對(duì)另一個(gè)類的依賴應(yīng)該建立在最小的接口上
(3)依賴倒轉(zhuǎn)原則:抽象不應(yīng)該依賴細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴抽象
(4)里式替換原則:子類中盡量不要重寫父類的方法
(5)開(kāi)閉原則ocp:模塊和函數(shù)應(yīng)該對(duì)拓展開(kāi)放(對(duì)提供方),對(duì)修改關(guān)閉(對(duì)使用方)
(6)迪米特原則:迪米特法則(Demeter Princicle)又叫做最少知道原則,即一個(gè)類對(duì)自己以外的類知道的越少越好。
(7.合成復(fù)用原則):盡量使用合成/聚合,而不是使用繼承