Java设计模式--工厂方法模式

Posted 小LUA

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java设计模式--工厂方法模式相关的知识,希望对你有一定的参考价值。

角色

抽象工厂:担任这个角色是工厂方法模式的核心,它是与应用程序无关的。任何在模式中创建对象的工厂类都必须实现这个接口。

具体工厂:担任这个角色的是实现了抽象工厂接口的具体Java类。具体工厂角色含有与应用密切相关的逻辑,并且受到应用程序的调用来创建产品对象。

抽象产品:工厂方法模式所创建对象的超类型,也就是产品对象的共同父类或接口。

具体产品:这个角色实现了抽象产品接口。

结构图

 

 抽象工厂:

package com.design.factorymethod;

public interface Factory {

    Product createProduct();
}

 

抽象产品:

package com.design.factorymethod;

public interface Product {

    void productInfo();
}

 

具体产品:

package com.design.factorymethod;

public class ProductA implements Product {
    @Override
    public void productInfo() {
        System.out.println("Product A");
    }
}
package com.design.factorymethod;

public class ProductB implements Product {
    @Override
    public void productInfo() {
        System.out.println("Product B");
    }
}

 

具体工厂:

package com.design.factorymethod;

public class FactoryA implements Factory {
    @Override
    public Product createProduct() {
        return new ProductA();
    }
}
package com.design.factorymethod;

public class FactoryB implements Factory {
    @Override
    public Product createProduct() {
        return new ProductB();
    }
}

 

测试:

package com.design.factorymethod;

public class Client {

    private static Factory factoryA, factoryB;
    private static Product productA, productB;
    public static void main(String[] args){
        factoryA = new FactoryA();
        factoryB = new FactoryB();
        productA = factoryA.createProduct();
        productB = factoryB.createProduct();
        productA.productInfo();
        productB.productInfo();
    }
}

 

输出:

 

工厂方法模式和简单工厂模式的区别:工厂方法模式的核心是一个抽象工厂类,而简单工厂模式的核心是一个具体类

以上是关于Java设计模式--工厂方法模式的主要内容,如果未能解决你的问题,请参考以下文章

Java--工厂模式

java设计模式:工厂方法模式(Factory Method)

Java 工厂模式

JAVA设计模式(01):创建型-工厂模式工厂方法模式(Factory Method)

抽象工厂模式(JAVA反射)

Java设计模式图文代码案例详解Java五大创建者模式 建造者原型(抽象)工厂单例模式