無中生有 抽象工廠模式

2021-10-06 10:19:56 字數 3254 閱讀 6629

綜述

抽象工廠模式提供乙個建立一系列相關或者相互依賴物件的介面

例如,美的空調,美的電冰箱,他們就都是美的工廠生產的,就是同一產品族

例如:美的空調,格力空調,都是空調,他們就是同一產品等級結構,都是空調

所以根據產品等級結構和產品族可以唯一確定乙個產品。

業務場景

模型分析

umlgreefactory,mideafactory,haie***ctory這三個是具體的廠商,他們都可以生產自己品牌的冰箱和空調

firdge和其子類,以及airconditioner和其子類都是同一產品等級下面不同牌子的產品。

* 冰箱

*/public

abstract

class

fridge

protected

abstract

void

show()

;}

/**

* 空調

*/public

abstract

class

airconditioner

protected

abstract

void

show()

;}

/**

* 美的冰箱

* @author zhongyuan.zhao

* @date 2020-05-23 15:39

*/public

class

mideafridge

extends

fridge

@override

protected

void

show()

}

/**

* 美的空調

* @author zhongyuan.zhao

* @date 2020-05-23 21:36

*/public

class

mideaairconditioner

extends

airconditioner

@override

protected

void

show()

}

/**

* 格力冰箱

*/public

class

greefridge

extends

fridge

@override

protected

void

show()

}

/**

* 格力空調

*/public

class

greeairconditioner

extends

airconditioner

@override

protected

void

show()

}

/**

* 海爾冰箱

*/public

class

haierfridge

extends

fridge

@override

protected

void

show()

}

/**

* 海爾空調

*/public

class

haierairconditioner

extends

airconditioner

@override

protected

void

show()

}

/**

* 產品族工廠

*/public

inte***ce

ifactory

/**

* 美的工廠

*/public

class

mideafactory

implements

ifactory

@override

public airconditioner createairconditioner()

}

/**

* 海爾工廠

*/public

class

haie***ctory

implements

ifactory

@override

public airconditioner createairconditioner()

}

/**

* 格力工廠

*/public

class

greefactory

implements

ifactory

@override

public airconditioner createairconditioner()

}

/**

* 客戶端

* * @author zhongyuan.zhao

* @date 2020-05-23 15:49

*/public

class

maintest

// 預計列印結果應該是格力冰箱和格力空調

fridge.

show()

; airconditioner.

show();}}

再次細品工廠模式(工廠方法模式,抽象工廠模式),本質上,就是讓我們在**中不要有太多的重複的建立相同物件的操作,這種操作會讓我們的**中有大量的重複**(這是一種**壞味道),如果有這種相同物件頻繁建立的情況,可以考慮使用工廠模式進行優化。

一句話總結:工廠模式就是防止**中有太多重複建立相同物件的**!

第0章 無中生有

每個學計算機的同學都想寫乙個作業系統,每個學儲存的同學都想開發一款磁碟陣列。每當看到 作業系統 四個字我就衝動,那是大腦皮層的強烈反應,無奈能力不濟,繞了一大圈都沒入門。今年5月剛好沒啥正事,所以打算重整旗鼓,寫乙個非常簡單的os,想用來敲開 作業系統 這個大門。這個系列的文章只記錄開發過程的點滴經...

Go語言列舉 無中生有

go語言中沒有列舉這種資料型別的,但是可以使用const配合iota模式來實現,如果要為列舉新增方法的話還涉及到型別的定義,以及為新建型別新增方法。所以在開始介紹實現go語言的列舉實現之前,我們先來看看型別別名 在go1.9版本新增的功能,主要用於 公升級 遷移中型別的相容性問題 和型別定義的區別。...

無中生有 計算機視覺探奇

計算機視覺 computer vision,cv 是一門研究如何使機器 看 的科學。1963年來自mit的larry roberts發表的該領域第一篇博士 machine perception of three dimensional solids 標誌著cv作為一門新興人工智慧方向研究的開始。在發...