日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
設(shè)計模式面試題解背誦版

簡述設(shè)計模式七大原則

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

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

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

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

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

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

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

簡述設(shè)計模式的分類

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

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

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

簡述簡單工廠模式

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

簡述工廠模式

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

簡述抽象工廠模式

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

簡述單例模式

一個單例類在任何情況下都只存在一個實例。

餓漢式實現(xiàn)

 
 
 
  1. public class Singleton { 
  2.     private Singleton(){} 
  3.     private static Singleton instance  
  4.         = new Singleton(); 
  5.   
  6.     public static Singleton getInstance() { 
  7.         return instance; 
  8.     } 

懶漢式實現(xiàn)

 
 
 
  1. public class Singleton { 
  2.     private DoubleCheckSingleton(){} 
  3.     private volatile static  
  4.     Singleton instance; 
  5.  
  6.     public static Singleton getInstance() { 
  7.         if(instance == null) { 
  8.             synchronized (Singleton.class) { 
  9.                 if (instance == null) { 
  10.                     instance = new Singleton(); 
  11.                 } 
  12.             } 
  13.         } 
  14.         return instance; 
  15.     } 

簡述代理模式

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

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

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

簡述適配器模式

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

簡述模板模式

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

簡述裝飾器模式

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

簡述觀察者模式

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


網(wǎng)站名稱:設(shè)計模式面試題解背誦版
轉(zhuǎn)載注明:http://www.5511xx.com/article/cojjdig.html