Java工廠方法設(shè)計模式
定義
工廠方法模式是 Java 中常用的一種創(chuàng)建型設(shè)計模式,它通過定義一個抽象的工廠接口來創(chuàng)建對象,從而將對象的創(chuàng)建與具體業(yè)務(wù)邏輯分離開來,提高了代碼的可維護性和可讀性。
對應(yīng)角色
- 抽象工廠:定義了創(chuàng)建產(chǎn)品對象的接口。
- 具體工廠:實現(xiàn)了抽象工廠中定義的接口,負(fù)責(zé)創(chuàng)建具體的產(chǎn)品對象。
- 抽象產(chǎn)品:定義了產(chǎn)品對象的公共接口。
- 具體產(chǎn)品:實現(xiàn)了抽象產(chǎn)品中定義的接口,由具體工廠來創(chuàng)建。
優(yōu)缺點
優(yōu)點
文章來源:http://www.zghlxwxcb.cn/news/detail-543482.html
- 可以將對象的創(chuàng)建和使用解耦,從而提高系統(tǒng)的靈活性和可維護性。
- 工廠模式可以隱藏對象的創(chuàng)建細(xì)節(jié),使客戶端只關(guān)心對象的使用,從而降低系統(tǒng)的復(fù)雜度。
- 工廠模式可以通過擴展工廠類或增加新的工廠類來添加新的產(chǎn)品,從而提高系統(tǒng)的擴展性和可維護性。
缺點
文章來源地址http://www.zghlxwxcb.cn/news/detail-543482.html
- 需要增加更多的類,增加了系統(tǒng)的復(fù)雜度。
- 客戶端需要知道具體工廠類的類型,才能創(chuàng)建相應(yīng)的產(chǎn)品對象。
應(yīng)用場景
- 當(dāng)一個類不知道它所需要的對象的類時。
- 當(dāng)一個類希望通過其子類來指定創(chuàng)建對象時。
- 當(dāng)類將創(chuàng)建對象的職責(zé)委托給多個幫助子類中的某一個,并且你希望將哪一個幫助子類是代理者這一信息局部化時。
實例
// 抽象產(chǎn)品
interface Product {
void use();
}
// 具體產(chǎn)品A
class ProductA implements Product {
@Override
public void use() {
System.out.println("使用產(chǎn)品A");
}
}
// 具體產(chǎn)品B
class ProductB implements Product {
@Override
public void use() {
System.out.println("使用產(chǎn)品B");
}
}
// 抽象工廠
interface Factory {
Product createProduct();
}
// 具體工廠A
class FactoryA implements Factory {
@Override
public Product createProduct() {
return new ProductA();
}
}
// 具體工廠B
class FactoryB implements Factory {
@Override
public Product createProduct() {
return new ProductB();
}
}
// 客戶端
public class Client {
public static void main(String[] args) {
Factory factoryA = new FactoryA();
Product productA = factoryA.createProduct();
productA.use();
Factory factoryB = new FactoryB();
Product productB = factoryB.createProduct();
productB.use();
}
}
到了這里,關(guān)于Java工廠方法設(shè)計模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!