web前端中的設(shè)計(jì)模式面試題有哪些

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)web前端中的設(shè)計(jì)模式面試題有哪些,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創(chuàng)新互聯(lián)憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗(yàn),為客戶提供超值的營(yíng)銷型網(wǎng)站建設(shè)服務(wù),我們始終認(rèn)為:好的營(yíng)銷型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個(gè)人等客戶提供了網(wǎng)站制作、網(wǎng)站建設(shè)服務(wù),以良好的商業(yè)信譽(yù),完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。

 web前端中的設(shè)計(jì)模式面試題有哪些

簡(jiǎn)述設(shè)計(jì)模式七大原則

開(kāi)放封閉原則:對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉。在程序需要進(jìn)行拓展的時(shí)候,不能人為去修改原有的代碼,實(shí)現(xiàn)一個(gè)熱插拔的效果。

單一職責(zé)原則:一個(gè)類、接口或方法只負(fù)責(zé)一個(gè)職責(zé),這樣可以降低代碼復(fù)雜度以及減少代碼變更引起的風(fēng)險(xiǎn)。

依賴倒置原則:針對(duì)接口編程,編程依賴于抽象類或接口而不依賴于具體實(shí)現(xiàn)類。

接口隔離原則:將不同功能定義在不同接口中來(lái)實(shí)現(xiàn)接口隔離。

里氏替換原則:任何基類可以出現(xiàn)的地方,子類一定可以出現(xiàn)。

迪米特原則:每個(gè)模塊對(duì)其他模塊都要盡可能少地了解和依賴,降低代碼耦合度。

合成復(fù)用原則:盡量使用組合( has-a )/聚合( contains-a )而不是繼承( is-a )達(dá)到軟件復(fù)用的目的。

簡(jiǎn)述設(shè)計(jì)模式的分類

創(chuàng)建型模式:在創(chuàng)建對(duì)象的同時(shí)隱藏創(chuàng)建邏輯,不使用 new 直接實(shí)例化對(duì)象。該模式包含工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。

結(jié)構(gòu)型模式:通過(guò)類和接口間的繼承和引用實(shí)現(xiàn)創(chuàng)建復(fù)雜結(jié)構(gòu)的對(duì)象。該模式包含適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。

行為型模式:通過(guò)類之間不同通信方式實(shí)現(xiàn)不同行為。該模式包含策略模式、模板方法模式、觀察者模式、迭代子模式、責(zé)任鏈模式、命令模式、備忘錄模式、狀態(tài)模式、訪問(wèn)者模式、中介者模式、解釋器模式。

簡(jiǎn)述簡(jiǎn)單工廠模式

簡(jiǎn)單工廠模式指由一個(gè)工廠對(duì)象來(lái)創(chuàng)建實(shí)例,適用于工廠類負(fù)責(zé)創(chuàng)建對(duì)象較少的情況。例子:Spring 中的 BeanFactory 使用簡(jiǎn)單工廠模式,產(chǎn)生  Bean 對(duì)象。

簡(jiǎn)述工廠模式

工廠方法模式指定義一個(gè)創(chuàng)建對(duì)象的接口,讓接口的實(shí)現(xiàn)類決定創(chuàng)建哪種對(duì)象,讓類的實(shí)例化推遲到子類中進(jìn)行。例子:Spring 的 FactoryBean 接口的  getObject 方法也是工廠方法。

簡(jiǎn)述抽象工廠模式

抽象工廠模式指提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,無(wú)需指定它們的具體類。例子:java.sql.Connection 接口。

簡(jiǎn)述單例模式

一個(gè)單例類在任何情況下都只存在一個(gè)實(shí)例。

餓漢式實(shí)現(xiàn)

public class Singleton {     private Singleton(){}     private static Singleton instance          = new Singleton();       public static Singleton getInstance() {         return instance;     } }

懶漢式實(shí)現(xiàn)

public class Singleton {     private DoubleCheckSingleton(){}     private volatile static      Singleton instance;      public static Singleton getInstance() {         if(instance == null) {             synchronized (Singleton.class) {                 if (instance == null) {                     instance = new Singleton();                 }             }         }         return instance;     } }

簡(jiǎn)述代理模式

代理模式為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問(wèn)。優(yōu)點(diǎn)是可以增強(qiáng)目標(biāo)對(duì)象的功能,降低代碼耦合度,擴(kuò)展性好。缺點(diǎn)是在客戶端和目標(biāo)對(duì)象之間增加代理對(duì)象會(huì)導(dǎo)致請(qǐng)求處理速度變慢,增加系統(tǒng)復(fù)雜度。

靜態(tài)代理:在程序運(yùn)行前就已經(jīng)存在代理類的字節(jié)碼文件,代理類和委托類的關(guān)系在運(yùn)行前就確定了。

動(dòng)態(tài)代理:程序運(yùn)行期間動(dòng)態(tài)的生成代理,所以不存在代理類的字節(jié)碼文件。代理類和委托類的關(guān)系是在程序運(yùn)行時(shí)確定。

簡(jiǎn)述適配器模式

適配器模式將一個(gè)接口轉(zhuǎn)換成客戶希望的另一個(gè)接口,使接口不兼容的那些類可以一起工作。

簡(jiǎn)述模板模式

模板模式定義了一個(gè)操作中的算法的骨架,并將一些步驟延遲到子類,適用于抽取子類重復(fù)代碼到公共父類??梢苑庋b固定不變的部分,擴(kuò)展可變的部分。但每一個(gè)不同實(shí)現(xiàn)都需要一個(gè)子類維護(hù),會(huì)增加類的數(shù)量。

簡(jiǎn)述裝飾器模式

裝飾者模式可以動(dòng)態(tài)地給對(duì)象添加一些額外的屬性或行為,即需要修改原有的功能,但又不愿直接去修改原有的代碼時(shí),設(shè)計(jì)一個(gè)Decorator套在原有代碼外面。

簡(jiǎn)述觀察者模式

觀察者模式表示的是一種對(duì)象與對(duì)象之間具有依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都得到通知并被自動(dòng)更新。

上述就是小編為大家分享的web前端中的設(shè)計(jì)模式面試題有哪些了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享文章:web前端中的設(shè)計(jì)模式面試題有哪些
鏈接URL:http://www.muchs.cn/article8/gjggop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作服務(wù)器托管、網(wǎng)頁(yè)設(shè)計(jì)公司網(wǎng)站設(shè)計(jì)、網(wǎng)站營(yíng)銷、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站