工廠方法的組成: 一個工廠接口,定義了建立產品的方法 一個工廠的實現類, 實現建立產品的方法,根據傳進來的類名,建立具體的對象 一個產品接口 若干產品類code
優勢: 只須要一個字符串就能夠建立想要的對象,而沒必要知道這個對象建立的過程是多麼艱辛 擴展比較容易,想要增長產品類別,只要修改工廠類或者擴展工廠類 不管產品類的實現怎麼變,調用者都無需關心, 只要接口不變,系統的上層模塊就不須要變化對象
擴展: 1. 縮小爲簡單工廠模式 不須要工廠接口,工廠的建立產品的方法改成靜態 這樣作的優勢是簡單了,可是不利於擴展 2. 升級爲多個工廠類 一個產品有一個建立的工廠類. 這麼作職責簡單了,可是給可維護性和可擴展性帶來必定的困難.接口
在複雜的應用中才用. 而且在其中加一個協調類,避免調用者與各個子工廠的交流,協調類的做用是封裝各 個子工廠,對高層模塊提供統一的訪問接口 3. 可替代單例模式,更方便,只須要傳遞一個字符串字符串
4. 延遲加載,把建立的東西放到內部的map中