Uri*_*Uri 10
许多框架都避免使用直接构造函数来复杂的对象,而是更喜欢更优雅的工厂.
通过"编译"正则表达式生成模式,因此您可以对"compile"方法进行静态调用.它初始化了所有必要的东西.匹配器特定于模式,因此由模式对象而不是由用户直接生成.
如果匹配器具有采用模式的构造函数,则匹配器的构造函数可能必须访问模式对象的非公共字段.
该方法的另一个潜在优点(与直接构造相比)是原则上可以通过在幕后实例化不同的Pattern和Matcher子类型来向用户透明地提供不同的匹配引擎.例如,假设您对匹配固定长度字符串的正则表达式(例如,没有通配符)以及包含星号或加号的正则表达式具有不同的匹配器实现,并且存在性能差异.话虽如此,看起来似乎并不是这样,因为Matcher被定义为最终类,尽管内部结构可能与模式紧密相关.