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测试类
扫描二维码关注公众号,回复:
50735 查看本文章
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