java設計模式 (工廠模式)

2021-08-25 19:49:47 字數 2128 閱讀 8851

1:工廠模式是一種比較常見的建立模式, 在實際開發中也是常常使用到。

2:工廠模式的形式:

2.1)簡單工廠模式,而對於簡單工廠模式來說,它是為了讓程式有乙個更好地封裝,降低程式模組之間的耦合程度,對於簡單的工廠模式,其實也可以將其理解成為乙個建立物件的工具類。在這個工具類裡面,我們就可以進行一些其他操作,比如物件的初始化。這樣就避免了把物件初始化的大量**(如果有大量**的話)放在建構函式裡了。

具體的**實現:

public class ******factory  else if (clazz.getname().equals(broom.class.getname())) 

return null;

}private broom createbroom()

private plane createplane()

}

簡單工廠模式的測試:

public class factorytest 

}

2.2)工廠方法模式:

在簡單的工廠模式裡,我們建立了乙個類似工具的類來建立相應的具體類物件。正因為其太過簡單,有一點不成規範,要對其做一些適當地封裝,工廠方法模式定義了乙個建立物件的介面,但由子類決定要例項化哪乙個。

具體的**實現:   

抽象工廠:

public abstract class vehiclefactory
具體工廠:

public class broomfactory extends vehiclefactory 

}

這個具體的實現工廠告訴我們,這裡可以通過 create() 方法來建立乙個 broom 物件,有乙個大的工廠它就是 vehiclefactory,vehiclefactory工廠裡又有很多生產車間,其中有乙個就是 broomfactory。

抽象產品介面:

public inte***ce moveable
具體產品:這是一些可以run(移動)的產品。就 broomfactory 生產車間而言,它負責生產 broom,這個 broom 是具有 run的功能(也就是moveable 介面),

public class broom implements moveable 

}

工廠方法測試:

vehiclefactory factory = new broomfactory();

moveable moveable = factory.create();

moveable.run();

2.3)抽象工廠模式:

對於具體工廠a和b需要生產一些同型別的不同產品。那麼我們就可以試試抽象工廠模式。

抽象工廠的具體**實現:

抽象工廠:

public abstract class abstractfactory
具體工廠:從抽象工廠的**中也可以看出,抽象工廠只是去「生產」一些抽象的東西。有點類似於底層機制的感覺。

public class factory1 extends abstractfactory 

@override

public moveable createmoveable()

@override

public writeable createwriteable()

}

抽象產品介面:在具體工廠裡,我們就可以生產一些具體的產品了。就是這裡的aircraft、car、pen。抽象的產品介面如下。

public inte***ce flyable
具體產品:

public class aircraft implements flyable 

}

抽象工廠測試:

public class factorytest 

}

3:總結;

以上就是工廠模式的基本實現和詳細說明。包括了簡單工廠模式、工廠方法模式、抽象工廠模式。我們可以基於需求來選擇合適的工廠模式。

java設計模式 工廠模式

工廠模式 存在的目的 定義乙個用於建立複雜類的物件的介面。使用工廠模式,降低了類與類之間的耦合關係。分為三種實現方式 類之間的繼承結構不同 簡單工廠模式 工廠方法模式 抽象工廠模式。主要涉及的三種類 呼叫工廠的類,工廠類,產品類。先看乙個不適用工廠模式的類組織 class bmw32 class b...

JAVA設計模式 工廠模式

一 簡單工廠。它的缺點很明顯,當需要再新增乙個whitehuman類時,需要在工廠類中修改,則 的耦合性很高。建立需要用工廠new的class public inte ce human public class blackhuman implements human public class yel...

java設計模式 工廠模式

靜態工廠模式 為了建立物件而產生 1 有工廠類,有乙個可以根據需求返回建立的物件的方法 2 工廠類中的產生物件的方法的返回值型別是 父類的型別,產生的物件都是子類物件 3 強調 工廠類中的方法的返回值和返回的物件中存在著向上轉型的關係 public class cloth public class ...