工厂模式的作用:
1、工厂模式是为了解耦,把对象的创建和使用的过程分开
2、创建对象过程统一管理
实现实例(工厂生产产品):
1、工厂接口:
package design.pattern.factory;
/**
* 产品工厂接口
*/
public interface BaseProductFactory {
BaseProduct createProduct();
}
2、产品基类
package design.pattern.factory;
/**
* 产品基类
*/
public abstract class BaseProduct {
public abstract void show();
}
3、产品A
package design.pattern.factory;
/**
* 产品A
*/
public class ProductA extends BaseProduct{
public void show() {
System.out.println("这是产品A");
}
}
4、产品B
package design.pattern.factory;
/**
* 产品B
*/
public class ProductB extends BaseProduct{
public void show() {
System.out.println("这是产品B");
}
}
5、产品A的工厂
package design.pattern.factory;
/**
* 产品A的工厂类
*/
public class ProductAFactory implements BaseProductFactory {
public BaseProduct createProduct() {
return new ProductA();
}
}
6、产品B的工厂
package design.pattern.factory;
/**
* 产品B的工厂类
*/
public class ProductBFactory implements BaseProductFactory {
public BaseProduct createProduct() {
return new ProductB();
}
}
7、测试类型
package design.pattern.factory;
/**
* 测试工厂模式
*/
public class TestFactory {
public static void main(String[] args) {
BaseProduct productA = getProduct("A");
productA.show();
BaseProduct productB = getProduct("B");
productB.show();
}
private static BaseProduct getProduct(String productType) {
BaseProductFactory productFactory;
if ("A".equals(productType)) {
productFactory = new ProductAFactory();
} else {
productFactory = new ProductBFactory();
}
return productFactory.createProduct();
}
}
执行结果: