面試連環炮系列(二十二):經常使用的設計模式有哪些

  1. 經常使用的設計模式有哪些,做用是什麼
    設計模式一共23種,經常使用的設計模式有:
    1. 工廠模式: 構建多個對象的工廠。
    2. 單例模式:單例類負責建立本身的對象,同時確保只有單個對象被建立
    3. 代理模式:代理其餘類,加強原來類的功能。
    4. 外觀模式:包裝多個類的複雜性,對外提供統一的方法。
    5. 責任鏈模式:爲了不請求發送者與多個請求處理者耦合在一塊兒,將全部請求的處理者經過前一對象記住其下一個對象的引用而連成一條鏈;當有請求發生時,可將請求沿着這條鏈傳遞,直到有對象處理它爲止。
  2. 單例模式的懶漢和餓漢模式你瞭解嗎
    懶漢模式:太懶了,第一次用的時候纔去實例化,適合使用量較小的狀況。
public class Singleton {
    private Singleton() {
    }
    private static Singleton singleton = null;

    public static Singleton getInstance() {
        if (singleton == null) {
            singleton = new Singleton();
        }
        return singleton;
    }

}

餓漢模式:很勤快,類定義的時候就實例化了。線程安全的,適合訪問量比較大的狀況。html

public class Singleton {  

    private Singleton(){ }
    private static final Singleton singleton = new Singleton();
    public static Singleton getInstance(){
        return singleton;
    }
}
  1. Spring框架用到了哪些設計模式
    1. 靜態工廠方法: Spring中的BeanFactory就是簡單工廠模式的體現,根據傳入一個惟一的標識來得到Bean對象,可是否是在傳入參數後建立仍是傳入參數前建立這個要根據具體狀況來定。
    2. 單例模式:Spring提供了全局的訪問點BeanFactory。但沒有從構造器級別去控制單例,這是由於Spring管理的是是任意的Java對象。
    3. 代理模式:Spring AOP的實現原理就是動態代理和字節碼操控。
    4. 適配器模式:將一個類的接口轉換成客戶但願的另一個接口。Adapter模式使得本來因爲接口不兼容而不能一塊兒工做的那些類能夠一塊兒工做。Spring中在對於AOP的處理中有Adapter模式的例子。
    5. 模板方法:定義一個操做中的算法的骨架,而將一些步驟延遲到子類中。Template Method使得子類能夠不改變一個算法的結構便可重定義該算法的某些特定步驟,好比JdbcTemplate
  2. 你怎麼選擇合適的設計模式
    考慮設計模式怎麼解決問題,找出與使用者問題相關的模式,研究模式如何相互關聯,考慮設計中那些是可變的,儘量實現強內聚,鬆耦合。

參考(摘抄的文字版權屬於原做者):

http://www.javashuo.com/article/p-gvbnwude-ka.html
http://c.biancheng.net/design_pattern/
http://www.javashuo.com/article/p-vnqbejmv-hc.html算法

相關文章
相關標籤/搜索