1.什么是抽象工厂模式
抽象工厂模式提供了创建对象的最佳方式,在抽象工厂模式中,抽象方法负责创建一个相关对象的工厂,不需要 显示指定它们的类。
2.使用场景
3.如何实现
4.优点
新增一个产品时,只需要创建一个产品对象以及该产品的工厂类即可。
6.应用示例以及UML
抽象工厂模式提供了创建对象的最佳方式,在抽象工厂模式中,抽象方法负责创建一个相关对象的工厂,不需要 显示指定它们的类。
2.使用场景
与工厂模式类似
3.如何实现
提供一个抽象类负责创建相关对象,具体实现在子类中。
4.优点
新增一个产品时,只需要创建一个产品对象以及该产品的工厂类即可。
5.缺点
。。
。
6.应用示例以及UML
代码示例:
创建多种几何图形,圆形、长方形、正方形
UML:
7.代码实现
7.1 抽象类AbstractShapeFactory
public abstract class AbstractShapeFactory {
public abstract Shape getShape();
}
7.2 圆形工厂类CircleFactory
public class CircleFactory extends AbstractShapeFactory{
@Override
public Shape getShape() {
return new Circle();
}
}
7.3长方形工厂类RectangleFactory
public class RectangleFactory extends AbstractShapeFactory{
@Override
public Shape getShape() {
return new Rectangle();
}
}
7.4正方形工厂类SquareFactory
public class SquareFactory extends AbstractShapeFactory{
@Override
public Shape getShape() {
return new Square();
}
}
8.测试类
8.1测试类
public class AbstractFactoryTest {
@Test
public void test(){
CircleFactory circleFactory = new CircleFactory();
Shape circle = circleFactory.getShape();
circle.draw();
RectangleFactory rectangleFactory = new RectangleFactory();
Shape rectangle = rectangleFactory.getShape();
rectangle.draw();
SquareFactory squareFactory = new SquareFactory();
Shape square = squareFactory.getShape();
square.draw();
}
}
8.2测试结果
this is Circle drawing
this is Rectangle drawing
this is Square drawing