抽象工厂是属于三大类中的创建模式处理对象创建的设计模式,视图根据实际情况使用合适的方式创建对象):他与工厂模式不同的地方有多个产品被创建,因此会有对个实际工厂,每个工厂又能创建对个产品
一个物品是又多个零件组成,其中的一种零件可能多个工厂都在生产
特点:创建一个或者一系列类的接口,不用刻意去指定这个类
//定义第一个工厂和第一个工厂个的生产品
public class FactoryA implements AbstractFactory{
public FactoryProduct getFactoryProduct() {
return new ProductA();
}
public FactoryProduce2 getFactoryProduct2() {
return new ProductB();
}
}
public class ProductA implements FactoryProduct{
public void productone() {
System.out.println("This is 工厂1的产品");
}
}
public class ProductB implements FactoryProduce2{
public void producttwo() {
System.out.println("This is 工厂2的产品");
}
}
//定义第二个工厂和第二个工厂的产品
public class FactoryB implements AbstractFactory{
public FactoryProduct getFactoryProduct() {
return new ProductAA();
}
public FactoryProduce2 getFactoryProduct2() {
return new ProductBB();
}
}
public class ProductAA implements FactoryProduct{
public void productone() {
System.out.println("这是工厂AA的产品");
}
}
public class ProductBB implements FactoryProduce2{
public void producttwo() {
System.out.println("这是工厂BB的产品");
}
}
//定义产品和工厂的接口
public interface FactoryProduce2 {
public void producttwo();
}
public interface FactoryProduct {
public void productone();
}
//测试代码
public class ProductTest {
public static void main(String[] args) {
FactoryA factoryA=new FactoryA();
FactoryProduct factoryProduct = factoryA.getFactoryProduct();//通过A工厂获取产品1
FactoryProduce2 factoryProduct2 = factoryA.getFactoryProduct2();//通过B工厂个获取产品2
factoryProduct.productone();
factoryProduct2.producttwo();
FactoryB factoryB=new FactoryB();
FactoryProduct factoryProduct1 = factoryB.getFactoryProduct();
FactoryProduce2 bFactoryProduct2 = factoryB.getFactoryProduct2();
factoryProduct1.productone();
bFactoryProduct2.producttwo();
}
}
有点懵,在工厂模式和抽象工厂之间没有转换过来,就感觉实现类和接口多少的问题!还是得深究