設計模式 1 工廠模式

2021-08-15 17:22:49 字數 2879 閱讀 7158

本篇部落格主要是總結一下自己對工廠模式的認識,例子可能不太恰當,uml類圖也可能線用錯。不過思想還是正確的

望各位指出錯誤

簡單工廠模式嚴格意義上不屬於設計模式

2.1 抽象產品角色:是具體產品角色的共同父類,提供了乙個標準介面。

e.g:   將計算機專業看成乙個抽象產品角色

public abstract class cs
2.2 具體產品角色:繼承實現抽象產品角色,有自己具體的實現

e.g:  具體的計算機專業

物聯網工程

public class iot extends cs

}

軟體工程

public class soft extends cs

}

2.3 工廠角色:簡單工廠模式的核心,建立具體的產品類物件(create方法為靜態的)

public class csfactory }}

public class testfactory

}

簡單工廠模式主要是為了介紹工廠模式的進門,雖然比較簡單,但卻是理解的基礎,為後面其他工廠模式的理解打下基礎、

5.1 優點:使用者無需知道方法的具體實現過程。

缺點 :擴充套件性差,產生新的計算機專業的時候,需要更改工廠類。(破壞了**的開閉原則(設計模式原則之一):對擴充套件開放,對修改關閉)

2.1 抽象工廠物件:工廠模式的核心,具體工廠物件實現/繼承該工廠物件

e.g.  計算機類專業工廠產生計算機專業

public abstract csfactory
2.2 抽象產品角色:是具體產品角色的共同父類,提供了乙個標準介面。

e.g :  將計算機專業看成乙個抽象產品角色

public abstract class cs
2.3具體產品角色:繼承實現抽象產品角色,有自己具體的實現。

e.g: 計算機專業分為物聯網工程以及軟體工程。

public class  iot extends  cs

}public class soft extends cs

}

2.4  具體工廠物件:實現/繼承抽象工廠物件。

e.g:物聯網以及軟體工程兩個專業有對應的工廠

public class  iotcsfactory extends csfactory

}public class softcsfactory extends csfactory

}

public class testfactory      

}

簡單工廠模式的衍生,是對簡單工廠模式的抽象。相當於將簡單工廠模式中的工廠分為抽象工廠和具體工廠。符合開閉原則,新增新的專業,只要其工廠繼承原有抽象工廠,以及本身繼承原有的抽象cs類。

5.1 新增新的專業,除了新增新的專業類,也要提供其對應的具體工廠類。不用改變原來的**,

5.2 乙個具體工廠只能建立乙個具體產品。

2.1 抽象工廠物件:工廠模式的核心,具體工廠物件實現/繼承該工廠物件

e.g 抽象cs工廠,會產生物聯網以及軟體工程兩個專業

public abstract abstractcsfactory
2.2 抽象產品角色:是具體產品角色的共同父類,提供了乙個標準介面。

e.g  物聯網以及軟體專業都可以細分,所以都設定為抽象類

public abstract class iot

public abstract class soft

2.3具體產品角色:繼承實現抽象產品角色,有自己具體的實現。

e.g 物聯網以及軟體工程兩個專業都有師範和非師範類

public class  teiot extends  iot

}public class noteiot extends iot

}public class tesoft extends soft

}public class notesoft extends soft

}

2.4  具體工廠物件:實現/繼承抽象工廠物件。

e.g. 分為師範類工廠和非師範類工廠

public class tecsfactory extends abstractcsfactory   

@override

public soft createsoft()

}

public class notecsfactory extends abstractcsfactory 

@override

public soft createsoft()

}

public class testfactory 

}

相對於工廠方法模式,抽象工廠模式可以產生多餘的其他功能。乙個具體的工廠可以產生多個有類似功能的物件。

設計模式 工廠模式 1

2.工廠方法模式 3.抽象工廠模式 public inte ce fruit public class banana implements fruit public class implements fruit public class fruitfactory public static frui...

設計模式 1 工廠模式

介面行模式 職責型模式 構造型模式 不通過類建構函式來建立物件,使用特定的模式來為客戶類建立例項物件 操作型模式 擴充套件型模式 在建立類時,通常可以同時定義多個建構函式來建立這個類的例項。然而有些時候,客戶 雖然需要某個物件,但是卻不關心這個物件究竟是由哪個類建立而來。工廠模式的意圖是定義乙個用於...

設計模式 (1)工廠模式

工廠模式 工廠模式屬於建立型模式,大致可以分為三類,簡單工廠模式 工廠方法模式 抽象工廠模式。例如部署多種資料庫的情況,可能在不同的地方要使用不同的資料庫,此時只需要在配置檔案中設定資料庫的型別,每次再根據型別生成例項,這樣,不管下 面的資料庫型別怎麼變化,在客戶端看來都是只有乙個abstractp...