11.24 面試官:請說下適配器模式、代理模式和裝飾者模式的不同

適配器模式、代理模式和裝飾者模式是設計模式中的高頻設計模式,三者非常相似,需要重點區分下。直接上結論先,

  1. 裝飾者模式的關注點在於添加功能。
  2. 代理模式的關注點在於控制對象的訪問,其原型對象對於用戶無法得知。
  3. 適配器模式關注點在於適配。
面試官:請說下適配器模式、代理模式和裝飾者模式的不同

設計模式一直是Java高級面試的重點,她代表了最佳的實踐,通常被有經驗的面向對象的軟件開發人員所採用,是眾多軟件開發人員長時間的總結出來的。遵循六大原則,

  • 單一職責原則
  • 里氏替換原則
  • 依賴倒置原則
  • 接口隔離原則
  • 迪米特原則
  • 開閉原則

適配器模式一般使用的情況包括:系統需要使用現有的類,但此類已經不符合系統的需要。想要建立一個可以重複使用的類,用於與一些彼此之間沒有太大關聯的一些類,包括一些可能在將來引進的的類一起工作。適配器模式在系統升級的時候使用的頻率很高,對舊系統的一些功能方法在新系統中引用。

代理模式:在直接訪問對象時帶來的問題,比如說:要訪問的對象在遠程的機器上。在面向對象系統中,有些對象由於某些原因(比如對象創建開銷很大,或者某些操作需要安全控制,或者需要進程外的訪問),直接訪問會給使用者或者系統結構帶來很多麻煩,我們可以在訪問此對象時加上一個對此對象的訪問層。

裝飾模式一般在下列情況使用:需要擴展一個類的功能或者給你個類增加附加責任;需要動態的給一個對象增加功能,這些功能可以再動態的撤銷;需要增加有一些基本功能的排列組合而產生非常大量的功能,從而使得繼承關係變得不現實。裝飾模式java中的I/O文件的操作中都有體現。Java的IO庫中處理流的類有FIleInputStream,FileOutputStream,DataInputStream,DataOutputStream類等。在InputStream,OutputStream,Reader,Writer結構的內部,有一些流處理器可以對另一些流處理器起到裝飾作用,形成新的,改善的流處理器。這就體現了裝飾模式的作用。


分享到:


相關文章: