您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關web前端中的設計模式面試題有哪些,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
開放封閉原則:對擴展開放,對修改關閉。在程序需要進行拓展的時候,不能人為去修改原有的代碼,實現一個熱插拔的效果。
單一職責原則:一個類、接口或方法只負責一個職責,這樣可以降低代碼復雜度以及減少代碼變更引起的風險。
依賴倒置原則:針對接口編程,編程依賴于抽象類或接口而不依賴于具體實現類。
接口隔離原則:將不同功能定義在不同接口中來實現接口隔離。
里氏替換原則:任何基類可以出現的地方,子類一定可以出現。
迪米特原則:每個模塊對其他模塊都要盡可能少地了解和依賴,降低代碼耦合度。
合成復用原則:盡量使用組合( has-a )/聚合( contains-a )而不是繼承( is-a )達到軟件復用的目的。
創建型模式:在創建對象的同時隱藏創建邏輯,不使用 new 直接實例化對象。該模式包含工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結構型模式:通過類和接口間的繼承和引用實現創建復雜結構的對象。該模式包含適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
行為型模式:通過類之間不同通信方式實現不同行為。該模式包含策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。
簡單工廠模式指由一個工廠對象來創建實例,適用于工廠類負責創建對象較少的情況。例子:Spring 中的 BeanFactory 使用簡單工廠模式,產生 Bean 對象。
工廠方法模式指定義一個創建對象的接口,讓接口的實現類決定創建哪種對象,讓類的實例化推遲到子類中進行。例子:Spring 的 FactoryBean 接口的 getObject 方法也是工廠方法。
抽象工廠模式指提供一個創建一系列相關或相互依賴對象的接口,無需指定它們的具體類。例子:java.sql.Connection 接口。
一個單例類在任何情況下都只存在一個實例。
餓漢式實現
public class Singleton { private Singleton(){} private static Singleton instance = new Singleton(); public static Singleton getInstance() { return instance; } }
懶漢式實現
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; } }
代理模式為其他對象提供一種代理以控制對這個對象的訪問。優點是可以增強目標對象的功能,降低代碼耦合度,擴展性好。缺點是在客戶端和目標對象之間增加代理對象會導致請求處理速度變慢,增加系統復雜度。
靜態代理:在程序運行前就已經存在代理類的字節碼文件,代理類和委托類的關系在運行前就確定了。
動態代理:程序運行期間動態的生成代理,所以不存在代理類的字節碼文件。代理類和委托類的關系是在程序運行時確定。
適配器模式將一個接口轉換成客戶希望的另一個接口,使接口不兼容的那些類可以一起工作。
模板模式定義了一個操作中的算法的骨架,并將一些步驟延遲到子類,適用于抽取子類重復代碼到公共父類。可以封裝固定不變的部分,擴展可變的部分。但每一個不同實現都需要一個子類維護,會增加類的數量。
裝飾者模式可以動態地給對象添加一些額外的屬性或行為,即需要修改原有的功能,但又不愿直接去修改原有的代碼時,設計一個Decorator套在原有代碼外面。
觀察者模式表示的是一種對象與對象之間具有依賴關系,當一個對象的狀態發生改變時,所有依賴于它的對象都得到通知并被自動更新。
上述就是小編為大家分享的web前端中的設計模式面試題有哪些了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。