設計模式 2 工廠模式概念要點及例子說明

2021-10-10 01:23:06 字數 2713 閱讀 1918

所謂的工廠模式,就是將物件的建立交給乙個工廠類來管理建立,使用者不需要關注物件的建立,就能更好關注其業務使用

工廠模式又可以分為簡單工廠模式,工廠方法模式和抽象工廠模式。

1. 簡單工廠模式:

public

inte***ce

computer

public

class

hwcomputer

implements

computer

}public

class

implements

computer

}

簡單工廠模式,靠乙個工廠類來管理物件的建立,可依據不同產品的特性來實現不同產品的建立。比如品牌branch

public

class

******compute***ctory

elseif(

.equals

(branch)

)else

}public

static

void

main

(string[

] args)

}

通過工廠類統一的方法makecommputer來管理具體產品的建立

但它的問題也很突出,當需要生產別的品牌電腦時,還需要對工廠類進行修改,這不符合開閉原則(對擴充套件開放,對修改關閉)

這就衍生出了工廠方法模式

2. 工廠方法模式:
工廠方法模式與簡單工廠模式的區別在於產品的建立並非由工廠類來統一區分,而是由子工廠來管理建立。

//工廠核心方法

public

abstract

class

compute***ctory

//huawei電腦子工廠

public

class

hwcompute***ctory

extends

compute***ctory

}public

class

extends

compute***ctory

}public

class

compute***ctorytest

}

主要針對工廠方法來進行擴充套件子工廠

這樣,每當由新的品牌電腦需要生產,只需要開闢乙個新的子工廠即可

3. 抽象工廠模式:
工廠方法模式只生產乙個等級的產品,即擁有乙個工廠核心方法

抽象工廠模式,是工廠方法模式的公升級,擁有多個核心方法,即可生成多個等級的產品

一台電腦擁有不同的cpu、gpu等元件,這些元件的生成可以統一由抽象工廠componentfactory來管理

具體生產什麼配置的電腦,由具體工廠來實現

//抽象產品

public

inte***ce

cpu//具體產品cpu_i5

public

class

cpu_i5

implements

cpu}

//具體產品cpu_i7

public

class

cpu_i7

implements

cpu}

//抽象產品

public

inte***ce

gpu//具體產品gpu_amd

public

class

gpu_amd

implements

gpu}

//具體產品gpu_nvidia

public

class

gpu_nvidia

implements

gpu}

//抽象工廠

public

inte***ce

componentfactory

//具體工廠lowcomposeplant

public

class

lowcomposeplant

implements

componentfactory

@override

public gpu makegpu()

}//具體工廠middlecomposeplant

public

class

middlecomposeplant

implements

componentfactory

@override

public gpu makegpu()

}

public

class

extends

compute***ctory

}

4. 工廠模式的作用:

【解耦】:不用關注例項是如何建立的,就能更好關注其業務使用

以上均為個人見解,歡迎討論

設計模式 1 單例模式概念要點及例子說明

0.要點 私有構造方法 本類中提供乙個靜態本類物件 對外提供乙個獲取例項的方法 1.雙重校驗的單例模式 該方式的單例模式是基於懶漢式的單例模式 雙重校驗能保證執行緒安全,且避免每次獲取物件都去synchronized加鎖,只有單例物件為null時才去加鎖建立例項物件 此外靜態物件要加volatile...

php設計模式工廠模式及單例模式

工廠模式 class example else 單例設計模式程式 final class superman 召喚超人的唯一方法 return superman static function call return self self 除錯用方法 return string function get...

設計模式 單例模式 工廠模式

1.單例設計模式 乙個類中只能有乙個物件 分為 懶漢單例模式和餓漢單例模式 懶漢單例模式 1.私有化構造器 2.宣告本類引用的型別,不要去指向物件 3.提供乙個公共靜態的方法,為外部提供物件,先判斷引用型別是否為物件,如果不是,則引用指 向乙個new 類名 並返回 如果有就返回這個引用 public...