java工厂模式应用场景有哪些(java可以用来写工业软件吗)

工厂模式是软件设计中最常用也最常见的一种模式,这里通过一个例子来说明其功能。

问题背景

用户需求:请提供 1)、图形绘制功能,当前可绘制当前可绘制原型、方形、三角形。未来可能需要支持绘制菱形、梯形等形状。2)、图形可以提供一些其他的方法,比如绘制、染色、描边等

系统设计

依据上面的需求,我们很自然的会想到以下设计点:

  • 定义接口类,该类定义了对用户提供的方法,比如绘制、染色、描边等。
  • 接口实现类,依据不同的图形来实现接口。

上面两点设计,完全可以实现用户需求。 但它有一个劣势:用户需要记住每个图形的实现类。随着增加新图形,或者更改当前使用的图形时,用户都需要不断实例化新的类。

此时,我们可以通过工厂模式来降低用户使用接口的复杂度。 即,我们提供一个工厂类,用户只需要输入图形类型即可获取到该图形的实例。用户不再需要记忆每个图形对应的类名。

所以,工厂模式是为了降低用户使用接口复杂度而出现的一个钟设计模式。

编码实现

  • 首先,定义个接口类
// 暴露给用户的接口类
public interface IShape {
    void draw(); // 提供给用户的方法
}
  • 其次,实现一个工厂,该工厂提供图形实例给用户
// 暴露给用户的工厂类,用户提供图形类型,即可通过该类获取图形实例。
public class ShapeFactory {
  // 返回值为接口定义
    public IShape create(String id)
    {
        if (id == null)
        {// 类型异常检测
            throw new IllegalArgumentException("id is null");
        }
        if ("Circle".equals(id))
        {
            return new Circle();
        }
        if ("Rectangle".equals(id))
        {
            return new Rectangle();
        }
        if ("Triangle".equals(id))
        {
            return new Triangle();
        }// 类型异常检测
        throw new IllegalArgumentException("Unknow id = "+id);
    }
}
  • 最后,实现工厂实体内容,即实现图形类。这里用圆形类举例,其它类不一一例句。
// 图形类,圆型类。用户通过工厂类可以获取该类的实例
public class Circle implements IShape {
    @Override
    public void draw() {
        System.out.println("draw a Circle");
    }
}

如上,清晰明了的说明了工厂模式的作用,及实现方法。

如果对例子感兴趣,可以私信我。

java工厂模式应用场景有哪些(java可以用来写工业软件吗)

总结:java可以用来写工业软件的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2705686032@qq.com 举报,一经查实,本站将立刻删除。原文转载: 原文出处:

(0)
尊云-小张的头像尊云-小张
上一篇 2024 年 5 月 9 日 09:10
下一篇 2024 年 5 月 9 日 09:14

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-900-3935

在线咨询: QQ交谈

邮件:cong@zun.com

工作时间:365天无休服务 24小时在线

添加微信