Java 抽象工廠模式

2021-08-25 14:10:00 字數 2411 閱讀 1544

約定不同實體類的行為介面

定義實現介面的實體類

定義抽象工廠類用於獲取具體工廠生產類

定義繼承自抽象工廠類的具體工廠類

定義乙個工廠創造器/生成器類用來獲取具體工廠

呼叫創造器/生成器類用於生產

約定介面

package abstractfactory;

public

inte***ce

color

package abstractfactory;

public

inte***ce

shape

定義實體類

package abstractfactory;

public

class

colorgreen

implements

color

}

package abstractfactory;

public

class

colorblue

implements

color

}

package abstractfactory;

public

class

shapecircle

implements

shape

}

package abstractfactory;

public

class

shaperectangle

implements

shape

}

定義抽象工廠類

package abstractfactory;

public

abstract

class

abstractfactory

定義具體工廠類

package abstractfactory;

public

class

factorycolor

extends

abstractfactory

if(colortype.

equalsignorecase

("blue"))

else

if(colortype.

equalsignorecase

("green"))

return null;

}public shape getshape

(string shapetype)

}

package abstractfactory;

public

class

factoryshape

extends

abstractfactory

if(shapetype.

equalsignorecase

("circle"))

else

if(shapetype.

equalsignorecase

("rectangle"))

return null;

}public color getcolor

(string colortype)

}

定義創造器/生成器類

package abstractfactory;

public

class

factoryproducer

else

if(choice.

equalsignorecase

("shape"))

return null;

}}

呼叫創造器/生成器類用於生產

import abstractfactory.abstractfactory;

import abstractfactory.color;

import abstractfactory.factoryproducer;

import abstractfactory.shape;

public

class

abstractfactorydemo

else

abstractfactory factorycolor = factoryproducer.

getfactory

("color");

if(factorycolor != null)

else

}}

java抽象工廠模式

抽象工廠模式 英語 abstract factory pattern 是一種軟體開發 設計模式 抽象工廠模式提供了一種方式,可以將一組具有同一主題的單獨的 工廠封裝起來。在正常使用中,客戶端程式需要建立抽象工廠的具體實現,然後使用抽象工廠作為 介面來建立這一主題的具體物件。客戶端程式不需要知道 或關...

java 抽象工廠模式

依然是簡單工廠模式中的印表機案例,不過這裡把工廠設計成介面,讓不同的工廠生產不同的印表機,再抽象出乙個生產工廠的工廠 印表機介面 package com.meteor.design pattern.abstract factory created by meteor on 2016 3 27.pub...

Java抽象工廠模式

當使用抽象工廠模式時,我們首先使用超級工廠建立工廠,然後使用建立的工廠建立物件 使用抽象工廠的步驟 1.建2個介面 package com.test public inte ce iprinter package com.test public inte ce ishape 2.建乙個抽象類來封裝這...