工厂模式:工厂模式是为了更加轻松的构建对象,而不用关注在构建的细节与过程,通过工厂类进行构建
工厂设计模式:通常创建一个对象或是实例,都是通过new的方式,通常都是使用者直接创建或是获取的,工厂设计模式就是增加一个工厂类,通过不通的具体工厂类创建不同的产品,也就是创建满足不同要求的实例或对象。
工厂模块划分:
(1)抽象工厂模块:这是工厂设计模式的核心,与具体的业务逻辑无关。是具体工厂角色必须实现的接口或必须继承的父类,通常由抽象类和接口充当抽象工厂模块。
(2)具体工厂模块:包含具体的业务逻
辑代码。不通的具体工厂负责创建不同的产品。
(3)抽象产品模块:抽象产品模块是具体产品模块必须实现的接口或必须继承的类,通常由抽象类或是接口充当。
(4)具体产品模块:具体工厂创建的产品就是该角色的实例,在java中通常都是具体的类来
产品类
public interface ProductInf {
public void BMW();
}
public class ProductClas320 implements ProductInf{
@Override
public void BMW() {
System.out.println("创建320");
}
}
public class ProductClas530 implements ProductInf {
@Override
public void BMW() {
System.out.println("创建520");
}
}
工厂类
public interface FactoryInf {
public ProductInf CreateBMW();
}
public class FactoryClas320 implements FactoryInf {
@Override
public ProductInf CreateBMW() {
ProductInf product = new ProductClas320();
System.out.println("320 is Create");
return product;
}
}
public class FactoryClas530 implements FactoryInf{
@Override
public ProductInf CreateBMW() {
ProductInf bmw530 = new ProductClas530();
System.out.println("530 is Create");
return bmw530;
}
}
测试类
public class CustomerTest {
public static void main(String[] args) {
//调用不通的工厂类、生成不通的产品,
//320生成的产品
FactoryInf fac320 = new FactoryClas320();
fac320.CreateBMW();
FactoryInf fac530 = new FactoryClas530();
fac530.CreateBMW();
}
}