創建型模式概述
隱藏了類的實例的創建細節,通過隱藏對象如何被創建和組合在一起達到使整個系統獨立的目的。
常見創建型模式詳解
- 單例模式: 深入理解單例模式——只有一個實例
工廠模式: 深入理解工廠模式——由對象工廠生成對象
爲什麼要用工廠模式
解耦 :把對象的創建和使用的過程分開
- 開放封閉原則,其核心的思想是:
- 軟件實體應該是可擴展,而不可修改的。也就是說,對擴展是開放的,而對修改是封閉的。
工廠方法模式
在工廠方法模式中,我們不再提供一個統一的工廠類來創建所有的對象,而是針對不同的對象提供不同的工廠。也就是說 每個對象都有一個與之對應的工廠 。
public interface Factory {
public Shape getShape();
}
(2)增加相關工廠類:
圓形工廠類
public class CircleFactory implements Factory {
@Override
public Shape getShape() {
// TODO Auto-generated method stub
return new Circle();
}
}
長方形工廠類
public class RectangleFactory implements Factory{
@Override
public Shape getShape() {
// TODO Auto-generated method stub
return new Rectangle();
}
}
圓形工廠類
public class SquareFactory implements Factory{
@Override
public Shape getShape() {
// TODO Auto-generated method stub
return new Square();
}
}
建造者模式: 深入理解建造者模式 ——組裝複雜的實例
1.2 爲什麼要用建造者模式(優點)?
1) 客戶端不必知道產品內部組成的細節,將產品本身與產品的創建過程解耦,使得相同的創建過程可以創建不同的產品對象。
2) 每一個具體建造者都相對獨立,而與其他的具體建造者無關,因此可以很方便地替換具體建造者或增加新的具體建造者, 用戶使用不同的具體建造者即可得到不同的產品對象 。
3) 可以更加精細地控制產品的創建過程 。將複雜產品的創建步驟分解在不同的方法中,使得創建過程更加清晰,也更方便使用程序來控制創建過程。