設計模式 第二節 工廠模式(Factory)

2021-10-24 08:59:23 字數 1891 閱讀 2760

1、 使用場景:系統更換**、spring-beanfactory

簡單工廠用於建立單一產品,經常和單例模式一起使用,例如用簡單工廠建立快取物件( 檔案快取 ),某天需要改用 redis 快取,修改工廠即可。

spring 中的beanfactory 就是簡單工廠模式的體現,根據傳入乙個唯一的標識來獲得bean 物件

抽象工廠常用於建立一整個產品族,而不是單一產品。通過選擇不同的工廠來達到目的,其優勢在於可以通過替換工廠而快速替換整個產品族。

抽象工廠適用於更換子分類

2、 分類:

簡單工廠模式(靜態工廠方法模式)

1、是類的建立模式,又叫靜態工廠方法模式。由乙個工廠物件決定建立出哪一種產品類的例項。通常它根據自變數的不同返回不同的類的例項。

2、角色構成:

1)介面

2)實現類

3)工廠類

工廠方法模式(factory method)

角色構成:

1)介面

2)實現類

3)工廠介面

4)工廠實現類

抽象工廠模式

角色構成:

1)介面

2)實現類

3)工廠抽象類(方法:返回介面型別的每乙個實現類方法)

4)工廠實現類 

3、 優點:客戶端與具體要建立的產品解耦,擴充套件性和靈活性高。

缺點:增加要建立的物件時,需要增加的**較多,會使系統變得較為複雜。

public inte***ce clothe
public class pants implements clothe 

}

public class shirt implements clothe 

}

public class skirt implements clothe 

}

//靜態工廠

public class clothefactory else if("pants".equals(typeclothe))else if("shirt".equals(typeclothe))else}}

public class ******factorytest 

}

//工廠方法

public inte***ce clothefactory
public class pantsfactory implements clothefactory 

}

public class shirtfactory implements clothefactory 

}

public class skirtfactory implements clothefactory 

}

public class functionfactorytest 

}

//抽象工廠方法

public abstract class abstractfactory
public class clothefactory extends abstractfactory 

@override

clothe getshirt()

@override

clothe getskirt()

}

public class abstractfactorytest 

}

Android測試 第二節 ADB 無線模式

囉嗦兩句啊。本來以為adb的一些用法一節就能講完,沒想到這個無線的模式還是比較繁瑣的,因此打算單獨拉出來說說,後續看有沒有必要自己實現乙個工具,能夠一鍵切換到無線這樣,這樣就再也不用插著線幹事了。好了,開始吧 無線能幹什麼 有android裝置的人大概都遇到過這樣的場景 1 用手機拍了好多 想拷到電...

設計模式第二話 工廠模式和抽象工廠模式

今天在慕課上學習了模式的秘密 工廠模式和抽象工廠模式,還需要更加深入地了解。以下內容整理自慕課網 傳送門 一 工廠模式是什麼?例項化物件的時候,我們用工廠方法來代替new操作 工廠模式包括了工廠模式和抽象工廠模式 二 工廠模式的意圖是什麼?定義乙個介面來建立物件,但是讓子類來決定哪些類需要被例項化,...

彙編 第二節

第二節 cpu主要有有運算器,控制器,暫存器,三部分組成 8086 cpu有14個暫存器,如ax,bx,cx,dx,si。8086所有暫存器都是16位的,可以存放2個byte即位元組,16位二進位制數 所能存放的最大數值是 11111111111 2 16 1 從0開始,所以 1嘛 通用暫存器為4個...