工廠設計模式

2021-06-27 13:51:38 字數 2932 閱讀 3726

(1)簡單工廠模式

1.核心

通過乙個工廠類來建立物件,通常是將要建立的物件的類名傳遞進去即可

本例模仿dota建立英雄,有乙個專門建立英雄的工廠類,每次建立只要傳入英雄名字即可。

英雄抽象類:

public inte***ce hero 

英雄1:qop

public class qop implements hero 

}

英雄2:bm

public class bm implements hero 

}

工廠類:

public class herofactory 

}

客戶端類:

public class client 

}

4.使用場景

以jdbc為例,第一步載入資料庫連線驅動,forname(name)就根據name建立出是mysql還是oracle等的連線類。

5.缺點

如果增加新的型別,那麼就需要修改工廠類

(2)工廠模式

1.核心

每乙個產品都對應乙個具體工廠,各個具體工廠都實現同乙個工廠介面,這樣增加乙個產品就只用增加乙個具體工廠即可。

英雄類介面:

public inte***ce ihero 

英雄1:qop

public class qop implements ihero 

}

英雄2:bm

public class bm implements ihero 

}

工廠類介面:

public inte***ce ifactory 

生產qop的工廠:

public class qopfactory implements ifactory 

}

生產bm的工廠

public class bmfactory implements ifactory 

}

客戶端:

public class client 

}}

4.優點

當需要增加乙個新的類的時候,只需要增加乙個工廠類,乙個具體類即可。

(3)抽象工廠模式

1.核心

每乙個工廠生產同乙個系列的產品,如有乙個生產寶馬汽車的工廠,生產多種型號的寶馬,不同型號的寶馬需要配置不同型號的空調,所以每乙個具體工廠既生產這種型號的寶馬,又生產這種汽車所配置的空調。

車和空調的介面類:

public inte***ce ibmw 

車的抽象類:

public abstract class bmw implements ibmw 

空調的抽象類:

public abstract class airofbmw implements ibmw 

寶馬520車:

public class bmw520 extends bmw 

}

寶馬521車:

public class bmw521 extends bmw 

}

寶馬520的空調

public class air520 extends airofbmw 

}

寶馬521的空調

public class air521 extends airofbmw 

}

生產寶馬車和空調的工廠的介面:

public inte***ce ifactory 

生產寶馬520和他的配套空調的工廠

public class bmw520factory implements ifactory

@override

public airofbmw createair()

}

生產寶馬521和他的配套空調的工廠

public class bmw521factory implements ifactory

@override

public airofbmw createair()

}

客戶端:

public class client 

if(bmw != null)

bmw.showname();

if(air != null)

air.showname();

}}

設計模式 工廠設計模式

用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...

設計模式 工廠設計模式

工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...

設計模式 工廠模式(簡單工廠)

一 簡單工廠 定義 簡單工廠模式 factory pattern 屬於類的創新型模式,又叫靜態工廠方法模式 static factorymethod pattern 是通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。特點 工廠類直接實現,乙個產品介面,乙個工廠類可以產生多...