为什么像java regex Pattern类这样的类没有任何公共构造函数?

时间:2013-11-25 23:11:50

标签: java regex

Pattern课程要求您使用public static compile()方法创建Pattern。这背后的原因是什么?此外,这是工厂设计模式的一个很好的例子吗?

1 个答案:

答案 0 :(得分:0)

在Pattern的情况下,主要是因为

  1. 命名比新的Pattern()
  2. 更精确
  3. 使用工厂方法允许标准实现者更改将来创建Pattern的方式。
  4. 现在实现它的方式可能在某些方面比创建新实例更有效。将正则表达式编译为状态机可能是一个昂贵的过程,因此他们可能已经找到了缓解这种情况的方法。
  5. 一般来说,目前的看法是支持静态工厂方法而不是构造函数,尤其是在API类中。