提供一个创建一系列相关或者相互依赖对象的接口,无需指定具体的类
package com.yl.design;
// 抽象工厂
public interface AbstractFactory {
public AbstractProductA createAbstractProductA();
public AbstractProductB createAbstractProductB();
}
package com.yl.design;
// 抽象产品A的接口
public interface AbstractProductA {
public void display();
}
package com.yl.design;
//产品A的具体实现
public class ProductA1 implements AbstractProductA {
@Override
public void display() {
System.out.println("display: ProductA1");
}
}
package com.yl.design;
//产品A的具体实现
public class ProductA2 implements AbstractProductA {
@Override
public void display() {
System.out.println("display: ProductA2");
}
}
package com.yl.design;
//抽象产品B的接口
public interface AbstractProductB {
public void display();
}
package com.yl.design;
//产品B的具体实现
public class ProductB1 implements AbstractProductB {
@Override
public void display() {
System.out.println("display: ProductB1");
}
}
package com.yl.design;
//产品B的具体实现
public class ProductB2 implements AbstractProductB {
@Override
public void display() {
System.out.println("display: ProductB2");
}
}
package com.yl.design;
//具体的工厂实现类
public class ConCreateFactory1 implements AbstractFactory {
@Override
public AbstractProductA createAbstractProductA() {
return new ProductA1();
}
@Override
public AbstractProductB createAbstractProductB() {
return new ProductB1();
}
}
package com.yl.design;
//具体的工厂实现类
public class ConCreateFactory2 implements AbstractFactory {
@Override
public AbstractProductA createAbstractProductA() {
return new ProductA2();
}
@Override
public AbstractProductB createAbstractProductB() {
return new ProductB2();
}
}
package com.yl.design;
public class Test {
public static void main(String[] args) {
//创建抽象工厂对象
AbstractFactory abstractFactory = new ConCreateFactory1();
//通过工厂来创建一系列对象
AbstractProductA productA = abstractFactory.createAbstractProductA();
AbstractProductB productB = abstractFactory.createAbstractProductB();
productA.display();
productB.display();
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_41359273/article/details/123359097
内容来源于网络,如有侵权,请联系作者删除!