1.什麼是工廠模式
工廠模式提供了建立物件的最佳方式,在建立物件時不會對客戶端暴露建立邏輯,並且通過乙個共同的介面來指向建立的物件。
2.使用場景
在不同的條件下建立不同的例項,比如spring使用了工廠模式管理bean的建立、生命週期以及bean與bean之間的關係。
3.如何實現
定義乙個建立物件的介面,讓其子類自己決定例項化哪乙個工廠類,工廠模式使其建立過程延遲到子類進行。
4.優點
5.缺點
每次增加乙個產品時,都需要增加乙個具體類和物件實現工廠,使得系統中類的個數成倍增加,在一定程度上增加了系統的複雜度,同時也增加了系統具體類的依賴。
6.應用示例以及uml
工廠模式 有三類:
**示例:
建立多種幾何圖形,圓形、長方形、正方形
uml檢視:
7.**實現
7.1 介面 shape
public inte***ce shape
7.2 正方形square
public class square implements shape
}
7.3 長方形rectangle
public class rectangle implements shape
}
7.4圓形circle
public class circle implements shape
}
7.5普通工廠方法ordinaryshapefactory
public class ordinaryshapefactory else if("rectangle".equalsignorecase(shapetype))else if("square".equalsignorecase(shapetype))else
}}
7.6 多個工廠方法methodfactory
public class methodfactory
/*** 建立長方形
* @return
*/public shape getrectangleshape()
/*** 建立正方形
* @return
*/public shape getsquareshape()
}
7.7靜態工廠方法staticmethodfactory
public class staticmethodfactory
/*** 建立長方形
* @return
*/public static shape getrectangleshape()
/*** 建立正方形
* @return
*/public static shape getsquareshape()
}
8.測試類
8.1 普通工廠測試類
public class ordinaryshapefactorytest
}
測試結果:
this is circle drawing
this is rectangle drawing
this is square drawing
8.2 多個工廠方法測試類
public class methodfactorytest
}
測試結果:
this is circle drawing
this is rectangle drawing
this is square drawing
8.3 靜態工廠測試類
public class staticmethodfactorytest
}
測試結果:
this is circle drawing
this is rectangle drawing
this is square drawing
建立型模式 工廠模式
建立型模式 工廠模式 工廠方法模式同樣屬於類的建立型模式又被稱為多型工廠模式 符合 開放 封閉 原則 通過新增 的方式,不是通過修改 的方式完成功能的增強。工廠方法模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。核心工廠類不再負責產品的建立,這樣核心類成為乙個抽象工廠角色,...
建立型模式(工廠模式)
目錄現在對該系統進行修改,不再設計乙個按鈕工廠類來統一負責所有產品的建立,而是將具體按鈕的建立過程交給專門的工廠子類去完成,我們先定義乙個抽象的按鈕工廠類,再定義具體的工廠類來生成圓形按鈕 矩形按鈕 菱形按鈕等,它們實現在抽象按鈕工廠類中定義的方法。這種抽象化的結果使這種結構可以在不修改具體工廠類的...
建立型模式 工廠模式
意圖 定義乙個建立物件的介面,讓其子類自己決定例項化哪乙個工廠類,工廠模式使其建立過程延遲到子類進行。主要解決 主要解決介面選擇的問題。何時使用 我們明確地計畫不同條件下建立不同例項時。如何解決 讓其子類實現工廠介面,返回的也是乙個抽象的產品。關鍵 建立過程在其子類執行。應用例項 1 您需要一輛汽車...