定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。在建立物件時不會對客戶端暴露建立邏輯,並且是通過使用乙個共同的介面來指向新建立的物件。常用的設計模式之一。
出現了大量的物件需要建立,並且具有共同的介面時,可以通過工廠方法模式進行建立物件。
如:車間主要是生產容器的,車間內存在數條產品線,分別生產瓶子、水杯、罐頭盒等,用工廠類實現
定義容器介面
package com.designpattern.factory;
public
inte***ce container
具體產品實現container介面
package com.designpattern.factory;
public
class
bottle
implements
container
@override
public
void
getshap()
@override
public
void
getcolor()
}
package com.designpattern.factory;
public
class
cupimplements
container
@override
public
void
getshap()
@override
public
void
getcolor()
}
package com.designpattern.factory;
public
class
canimplements
container
@override
public
void
getshap()
@override
public
void
getcolor()
}
建立乙個生產容器的工廠,有一下幾種方式
package com.designpattern.factory;
public
class factory else
if (producttype.equalsignorecase("can")) else
if (producttype.equalsignorecase("bottle")) else }}
簡單工廠缺點很明顯,需要顯式傳入控制變數,如果傳入有誤,則不能正確建立需要的物件
package com.designpattern.factory;
public
class mulitfactorymethod
public container getbottle()
public container getcan()
}
package com.designpattern.factory;
public
class staticfactory
public
static container getbottle()
public
static container getcan()
}
建立測試類
package com.designpattern.factory;
public
class testmain
}
cup
name
:cup
canname
:can
bottle
name
:bottle
設計模式 工廠模式 抽象工廠模式
建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...
設計模式 工廠設計模式
用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...
設計模式 工廠設計模式
工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...