1. 定義
工廠方法模式: 由子類決定要建立的具體類是哪乙個
抽象工廠: 允許客戶建立物件的家族,而無需指定他們的具體類
2. 理解
從定義中可以看出, 抽象工廠包含了工廠方法,區別是抽象工廠建立的是家族
3. 好處:
封裝具體物件的建立,促進松耦合
4. 設計原則
依賴倒置原則--依賴抽象,不依賴具體類
1. 工廠相關類
/*** 工廠 */
public
abstract
class
factory
/*** a 工廠 */
public
class factorya extends
factory
}/**
* b 工廠 */
public
class factoryb extends
factory
}
2. 牛奶類
/*** 產品抽象類 */
public
abstract
class
milk
/*** 產品a */
public
class milka extends
milk
}/**
* 產品b */
public
class milkb extends
milk
}
3. 測試
/*** 測試類 */
public
class
main
}
1. **背景,分為南京和杭州兩家工廠,他們各自生產自己的產品
2. 芝士
/*** 芝士 */
public
abstract
class
cheese
public
abstract
void
print();
}/**
* 南京生產的芝士 */
public
class nanjingcheese extends
cheese
@override
public
void
print()
}/**
* 杭州芝士 */
public
class hangzhoucheese extends
cheese
@override
public
void
print()
}
3. 牛奶
/*** 產品抽象類 */
public
abstract
class
milk
public
abstract
void
print();
}/**
* 南京的牛奶 */
public
class nanjingmilk extends
milk
@override
public
void
print()
}/**
* 杭州牛奶 */
public
class hangzhoumilk extends
milk
@override
public
void
print()
}
3. 工廠: 生產一組產品
/*** 抽象工廠類 */
public
abstract
class
factory
/*** 南京工廠 */
public
class nanjingfactory extends
factory
@override
public
cheese makecheese()
}/**
* 杭州工廠 */
public
class hangzhoufactory extends
factory
@override
public
cheese makecheese()
}
4. 測試
/*** 測試類 */
public
class
main
}
1. 所有工廠的目的都是封裝物件的建立
2.工廠方法使用的是繼承,把物件的建立委託給子類,子類來實現工廠方法來建立物件
3. 使用工廠模式的好處: 減少應用程式和具體類之間的依賴促進松耦合
簡單工廠和抽象工廠模式的理解
簡單工廠方法,舉例 有乙個資料訪問層的工廠類daofactory 介面 裡面有各種資料庫的實現,例如 oracledaofactory和mysqldaofactory,然後可以根據 你在客戶端的輸入或者某個配置檔案的資訊 oracle 或者 mysql 去建立屬於自己需要的那個資料庫實現 daofa...
工廠模式理解
例如乙個基類pet有許多個子類,聲稱這個體系中的隨機物件,當這個體系不斷有新子類增加的時候,因為該繼承體系中已經存在了常規的基礎,所以就有可能出現問題 考慮一點,為每個子類增加靜態初始化器,但是問題是 靜態初始化器只能在類首先被載入的時候才能被呼叫,而生成器在其列表中如果沒有這個類,他就永遠不能被呼...
工廠模式理解
工廠模式是一種建立型的設計模式,所謂建立型設計模式,不是簡單的使用new方法 例項化物件,建立物件時在 由誰?建立什麼?何時?等方面,提高了設計的靈活性。比如,普通工廠模式 對實現同一介面的類進行例項建立。需求 定義乙個生產龍蝦的工廠,通過使用這個工廠能烹飪各種龍蝦。思路 定義乙個工廠類,去建立其他...