工廠模式的理解和使用

2022-07-23 03:18:11 字數 2521 閱讀 1794

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方法 例項化物件,建立物件時在 由誰?建立什麼?何時?等方面,提高了設計的靈活性。比如,普通工廠模式 對實現同一介面的類進行例項建立。需求 定義乙個生產龍蝦的工廠,通過使用這個工廠能烹飪各種龍蝦。思路 定義乙個工廠類,去建立其他...