Java工厂设计模式课程详解

互联网 19-11-26

工厂模式是Java中最常用的设计模式之一。 这种类型的设计模式属于创建模式,因为此模式提供了创建对象的最佳方法之一。

在工厂模式中,我们没有创建逻辑暴露给客户端创建对象,并使用一个通用的接口引用新创建的对象。 (推荐学习:java课程)

实现方法

FactoryPatternDemo这是一个演示类,将使用ShapeFactory来获取一个Shape对象。它会将信息(CIRCLE/RECTANGLE/SQUARE)传递给ShapeFactory以获取所需的对象类型。

实现工厂模式的结构如下图所示 -

第1步

创建一个接口-

Shape.java public interface Shape {    void draw(); }

第2步

创建实现相同接口的具体类。如下所示几个类 -

Rectangle.java public class Rectangle implements Shape {    @Override    public void draw() {       System.out.println("Inside Rectangle::draw() method.");    } } Square.java public class Square implements Shape {    @Override    public void draw() {       System.out.println("Inside Square::draw() method.");    } } Circle.java public class Circle implements Shape {    @Override    public void draw() {       System.out.println("Inside Circle::draw() method.");    } }

第3步

创建工厂根据给定的信息生成具体类的对象。

ShapeFactory.java public class ShapeFactory {    //use getShape method to get object of type shape     public Shape getShape(String shapeType){       if(shapeType == null){          return null;       }               if(shapeType.equalsIgnoreCase("CIRCLE")){          return new Circle();       } else if(shapeType.equalsIgnoreCase("RECTANGLE")){          return new Rectangle();       } else if(shapeType.equalsIgnoreCase("SQUARE")){          return new Square();       }       return null;    } }

第4步

使用工厂通过传递类型等信息来获取具体类的对象。

FactoryPatternDemo.java public class FactoryPatternDemo {    public static void main(String[] args) {       ShapeFactory shapeFactory = new ShapeFactory();       //get an object of Circle and call its draw method.       Shape shape1 = shapeFactory.getShape("CIRCLE");       //call draw method of Circle       shape1.draw();       //get an object of Rectangle and call its draw method.       Shape shape2 = shapeFactory.getShape("RECTANGLE");       //call draw method of Rectangle       shape2.draw();       //get an object of Square and call its draw method.       Shape shape3 = shapeFactory.getShape("SQUARE");       //call draw method of circle       shape3.draw();    } }

第5步

验证输出结果如下-

Inside Circle::draw() method. Inside Rectangle::draw() method. Inside Square::draw() method.

以上就是Java工厂设计模式课程详解的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: java
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:使用java代码和伪代码实现插入排序

相关资讯